如何修改Kusto查询实现列内逗号分隔值的去重?
解决方案
可以通过Kusto的字符串拆分、去重、聚合函数实现Values列的逗号分隔值去重,修改后的查询如下:
Table | project Name, Values, Desc // 移除Values字段的引号并按逗号拆分为数组 | extend ValuesArray = split(trim('"', Values), ",") // 将数组展开为单行元素 | mv-expand ValuesArray to typeof(string) // 按Name、Desc分组,去除重复的Values元素 | distinct Name, ValuesArray, Desc // 将去重后的元素重新合并为带引号的逗号分隔字符串 | summarize Values = strcat('"', strcat_array(make_list(ValuesArray), ","), '"') by Name, Desc
步骤说明
- 拆分字符串:用
trim去掉Values字段前后的双引号,再通过split按逗号将字符串拆分成数组; - 展开数组:
mv-expand把数组中的每个元素单独展开为一行,方便后续去重操作; - 去重元素:
distinct保留每组Name+Desc下唯一的Values元素; - 重新聚合:
make_list收集去重后的元素,strcat_array将数组合并为逗号分隔的字符串,最后用strcat添加回前后的双引号,同时按Name和Desc聚合回原始行结构。
内容的提问来源于stack exchange,提问作者Eats
相关产品推荐
相关产品推荐

