2016-10-01 44 views
1

我有兩個自定義事件A和B. A將有一列有2列的C和D(具有datetime數據類型)。自定義事件B將具有2列E和F的行,其中E將具有日期時間值並且F將是整數值。事件A和B沒有任何公共列Azure應用程序洞察聯盟和列比較的分析查詢

現在我希望結果集具有在時間C和D之間發生的那些行。

例如,我有值 列C - 「2016年9月3日」 列d - 「2016年9月11日」具有多行 E欄從「2016年8月1日」開始,直到「 2016年9月30" 日。我想要的結果設置爲只具有與列E和F值的行C列和d之間發生

let tab1 = customEvents | extend cws = todatetime(tostring(customDimensions.['ColumnC'])) , cwe =todatetime(tostring(customDimensions.['ColumnB'])) | where name == "A" | project cws , cwe , name | limit 1 ; 
let tab2 = customEvents | extend dt = todatetime(tostring(customDimensions.['E'])) | where name == "B" |summarize F=count(name) by E=startofday(dt) | order by E asc | project E , F ; 
union tab* |take 10 |project cws , cwe , name , E , F 
| where E > cws and E < cwe | project E , F 

由於沒有共同的專欄中,我曾嘗試使用聯合聲明和聯合兩個表,但無法以獲得所需的結果集。對這個問題的任何輸入對我來說都會很有幫助。

回答

1

當您想要連接2個沒有公共列的數據集時,可以創建一個虛擬列。 試試這個問題:

customEvents 
| where name == "A" 
| extend cws = todatetime(tostring(customDimensions.['ColumnC'])) , cwe =todatetime(tostring(customDimensions.['ColumnB'])), dummy = "dummy" | project cws , cwe , name, dummy 
| join kind = leftouter (
    customEvents 
    | where name == "B" 
    | extend dt = todatetime(tostring(customDimensions.['E'])) | summarize F = count(name) by E=startofday(dt) | order by E asc | project E , F, dummy = "dummy" 
) on dummy 
| where E > cws and E < cwe | project E , F