如何将Kusto表中同一UniqueId的多行列值合并为单行?
Kusto多行合并为单行的实现方案
针对你需求的同一UniqueId对应多行合并为单行的场景,在Kusto中可以通过分组聚合的方式快速实现,核心思路是利用聚合函数提取每个分组内各列的唯一非空值。
具体实现代码
假设你的表名为LatencyTable,可以使用以下两种等效的查询语句:
方法1:使用max()聚合函数
LatencyTable | summarize latencyForCall1 = max(latencyForCall1), latencyForCall2 = max(latencyForCall2), latencyForCall3 = max(latencyForCall3) by UniqueId
方法2:使用any()聚合函数
LatencyTable | summarize latencyForCall1 = any(latencyForCall1), latencyForCall2 = any(latencyForCall2), latencyForCall3 = any(latencyForCall3) by UniqueId
思路说明
你的输入表中,同一UniqueId下的每个延迟列(latencyForCall1/2/3)仅存在一个非空有效值,其余行对应列均为空(null)。Kusto的max()和any()函数在处理null值时会自动忽略它们,因此对每个分组内的列执行聚合后,就能提取出该列唯一的有效值,最终将多行合并为单行,得到你期望的输出结构。
内容的提问来源于stack exchange,提问作者WhatsUp
相关产品推荐
相关产品推荐

