在Kusto中如何执行带特定子串匹配条件的去重查询
实现方案
你可以直接使用Kusto的聚合运算+子串判断实现需求,完整可运行的查询如下:
let Fruit = datatable(fruit:string, data:string) [ "apple", "awesome", "apple", "beast", "banana", "a beast", "orange", "awesome cat", "orange", "blah" ]; Fruit | summarize status = iif(any(data has "awesome"), "found", "not found") by fruit
逻辑说明
- 用
by fruit对表按水果名称分组,天然保证输出的fruit列值唯一,无需额外去重 - 聚合函数
any(data has "awesome")会判断当前分组下是否存在任意一条记录的data列包含awesome子串:如果需要精准匹配完整词就用has运算符,性能更好;如果需要任意位置的模糊子串匹配,把has替换为contains即可 iif()是Kusto的三元判断函数,根据前面的判断结果返回对应的found/not found状态
执行后输出结果完全符合预期:
| fruit | status |
|---|---|
| apple | found |
| banana | not found |
| orange | found |
内容的提问来源于stack exchange,提问作者perseverance
相关产品推荐
相关产品推荐

