首页 > 解决方案 > Kusto (KQL) 加入多个列

问题描述

我正在生成两个旋转数据集:

数据集 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() 的使用,并且行为符合预期。它现在正在工作,但我仍然不知道为什么。

标签: azureazure-data-lakeazure-data-explorerkql

解决方案


推荐阅读