如何在Kusto(KQL)中按车主统计其拥有的唯一车辆数量?
在Kusto(KQL)中统计车主的唯一车辆数
原始数据表
| 车辆类型 | 车主 |
|---|---|
| Car | James |
| Bike | James |
| Bus | James |
| Bus | James |
| Car | Betty |
| Bike | Betty |
| Bike | Betty |
| Car | Mike |
| Car | Mike |
期望结果
| 车主 | 唯一车辆数 |
|---|---|
| James | 3 |
| Betty | 2 |
| Mike | 1 |
方法1:先去重再统计
先通过distinct保留每个车主与车辆类型的唯一组合,再按车主分组统计数量,完全匹配你“先缩减为唯一记录再统计”的需求:
// 替换为你的实际表名,这里用datatable模拟原始数据 let car_records = datatable(车辆类型:string, 车主:string) [ "Car", "James", "Bike", "James", "Bus", "James", "Bus", "James", "Car", "Betty", "Bike", "Betty", "Bike", "Betty", "Car", "Mike", "Car", "Mike" ]; // 第一步:获取唯一的车主+车辆类型组合 car_records | distinct 车主, 车辆类型 // 第二步:按车主统计唯一车辆数量 | summarize 唯一车辆数 = count() by 车主 | sort by 唯一车辆数 desc
方法2:直接使用summarize dcount()
KQL内置的dcount()函数可以直接统计分组内的唯一值数量,无需手动去重,写法更简洁:
// 替换为你的实际表名,这里用datatable模拟原始数据 datatable(车辆类型:string, 车主:string) [ "Car", "James", "Bike", "James", "Bus", "James", "Bus", "James", "Car", "Betty", "Bike", "Betty", "Bike", "Betty", "Car", "Mike", "Car", "Mike" ] | summarize 唯一车辆数 = dcount(车辆类型) by 车主 | sort by 唯一车辆数 desc
两种方法都能输出你需要的结果,可根据习惯选择使用。
内容的提问来源于stack exchange,提问作者not_a_generic_user
相关产品推荐
相关产品推荐

