我正在生成两个旋转数据集:
数据集 1:
let T1 =
data
| where col1 == "blah"
| evaluate pivot(col2, count(col2), col3, col4);
数据集 2:
let T2 =
data
| where col1 == "blahblah"
| evaluate pivot(col2, count(col2), col3, col4);
这两个数据集都产生了我想要的信息。但我想在一张桌子上看到它们,所以我加入了它们..
T1
| join kind=leftouter T2 on col3,col4
当我加入这两个数据集时,记录集也加入了,但是旋转的计数列变成了 4 的乘积。我尝试以多种方式明确定义左和右。
Conbinations of:
| join kind=leftouter T2 on $left.col3 == $right.col3, $left.col4 == $right.col4
| join kind=leftouter T2 on ($left.col3 == $right.col3, $left.col4 == $right.col4)
| join kind=leftouter T2 on ($left.col3 == $right.col3 and $left.col4 == $right.col4)
是否有用于多列连接的语法?我在文档中找不到对多个列的任何引用。
我还尝试创建一列加入并仍然获得 4 倍乘数 - 想知道这是否是 Kusto 中的错误?
例如数据集 1:
let T1 =
data
| where col1 == "blah"
| evaluate pivot(col2, count(col2), col3, col4)
| extend joiny=strcat(col3,col4);
数据集 2:
let T2 =
data
| where col1 == "blahblah"
| evaluate pivot(col2, count(col2), col3, col4)
| extend joiny=strcat(col3,col4);
然后加入:
T1
| join kind=leftouter T2 on joiny
这仍然会产生一个数据集,其中所有透视列都乘以 4。
任何帮助/语法/建议都会有所帮助!谢谢。
编辑
我已经在这两个数据集周围删除了 materialize() 的使用,并且行为符合预期。它现在正在工作,但我仍然不知道为什么。