2016-07-06 90 views
1

我有2個自定義事件A和B. A可以具有「X」或「Y」的值。 B將具有唯一值Z.事件A的某些行同時具有「X」和「Y」值,但具有唯一的事件B值「Z」,並且我想過濾具有值「X」和「Y」的事件A.Azure應用程序洞察關於加入的分析查詢

我希望結果集的事件A只有值X,事件B的值是Z.基本上我不想顯示事件A有Y值的條目,當它已經有一個具有與Y具有相同唯一值Z的「X」的條目時。我基本上做了一個值間的內連接X和Y基於唯一值Z

customEvents 
    | extend Column1 = tostring(customDimensions.['A']) , column2 = tostring(customDimensions.['B']) 
    | where (Column1 == "X") 
    | project Column1 ,column2 
    | join kind= inner (  
     customEvents | extend Column1 = tostring(customDimensions.['A']) , column2 = tostring(customDimensions.['B']) | where (Column1 == "Y" 
    )| project Column1 , column2 
    ) on column2 | project Column1 , column2 

通過這個,我能夠獲得在列2中的唯一值Z和列1中的X上的公共行。

現在如何顯示在事件A中只有Y值的column1的剩餘行並將它們添加到從上述內部連接查詢中獲得的結果集中?我嘗試使用完整的外部事件A具有Y值與上面的結果我得到。但它沒有給我想要的結果。需要一些幫助。

+0

這將是有幫助的是你的意思到底是什麼一個樣本輸出。 「例如,我想要一個看起來像這樣的網格......」和你想要的表格,然後「但是我得到這個......」與你實際得到的是什麼? –

回答

1

我覺得有幾個方式來實現所期望的結果:

  • 使用Union操作,只是「膠水」兩個數據集在一起,不加入任何領域 - (Query1) | union (Query2)。如果您可以將兩個查詢中的兩個數據集作爲生成聯合的輸入,則這很適合。

  • 使用(Query1) | join kind=anti (Query2) on FieldField的右側未顯示的左側獲取所有內容。如果您想要從其他更豐富的數據集中「減去」數據集以獲得所需結果,那麼這很適合。

+0

感謝您的建議。使用工會解決了我的問題。我只是在研究各種加入組合並完全忘記了工會聲明。 – johnwrite

0

你不能做到這一點就更簡單了,沒有任何連接/工會可言,像

customEvents | 
extend columnA = tostring(customDimensions.['A']) 
extend columnB = tostring(customDimensions.['B']) 
extend columnMerged = iff(columnA == 'X', ColumnA, ColumnB) 
project columnMerged