[英]Kusto equivalent of SQL NOT IN
我試圖確定表 1 中存在哪些記錄不在表 2 中(所以基本上使用 NOT IN)
let outliers =
Table 2
| project UniqueEventGuid;
Table 1
|where UniqueEventGuid !in (outliers)
|project UniqueEventGuid
但是即使我知道表 1 中有孤兒,也得到了 0 條記錄。 !in
不是正確的語法嗎?
提前致謝!
“在表格表達式中,結果集的第一列被選中。”
在下面的示例中,我有意對列進行排序,以便查詢由於數據類型不匹配而導致錯誤。
在您的情況下,數據類型可能匹配,因此查詢有效,但結果錯誤。
let t1 = datatable(i:int, x:string)[1,"A", 2,"B", 3,"C" ,4,"D" ,5,"E"];
let t2 = datatable(y:string, i:int)["d",4 ,"e",5 ,"f",6 ,"g",7];
t1
| where i !in (t2)
Relop 語義錯誤:SEM0025:提供給“,in”運算符的值之一與左側表達式類型“int”不匹配,請考慮使用顯式強制轉換
如果確實如此,您可以重新排序列或僅投影相關的列。
注意使用雙括號。
let t1 = datatable(i:int, x:string)[1,"A", 2,"B", 3,"C" ,4,"D" ,5,"E"];
let t2 = datatable(y:string, i:int)["d",4 ,"e",5 ,"f",6 ,"g",7];
t1
| where i !in ((t2 | project i))
一世 | X |
---|---|
1 | 一個 |
2 | 乙 |
3 | C |
另一種選擇是使用leftanti join
let t1 = datatable(i:int, x:string)[1,"A", 2,"B", 3,"C" ,4,"D" ,5,"E"];
let t2 = datatable(y:string, i:int)["d",4 ,"e",5 ,"f",6 ,"g",7];
t1
| join kind=leftanti t2 on i
一世 | X |
---|---|
2 | 乙 |
3 | C |
1 | 一個 |
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.