如何在Kusto查询中将行计数结果转换为另一列
Kusto查询实现:按Name汇总薪资并添加总行数列
需求说明
从给定数据表中,按Name汇总薪资总和,同时在每行添加一列显示汇总结果的总行数(示例中为5)。
解决方案
使用Kusto的let语句存储中间结果,再通过toscalar获取总行数并添加为新列:
// 定义原始数据表 let source_data = datatable(Name: string, salary: int) [ "a", 500, "a", 500, "b", 600, "b", 600, "c", 800, "d", 1900, "e", 200 ]; // 按Name汇总薪资总和 let aggregated_data = source_data | summarize TotalSalary = sum(salary) by Name; // 添加总行数列 aggregated_data | extend RowCount = toscalar(aggregated_data | count)
输出结果
| Name | TotalSalary | RowCount |
|---|---|---|
| "a" | 1000 | 5 |
| "b" | 1200 | 5 |
| "c" | 800 | 5 |
| "d" | 1900 | 5 |
| "e" | 200 | 5 |
关键步骤说明
- 存储原始数据:用
let定义source_data,避免重复编写数据表结构。 - 按Name汇总薪资:通过
summarize sum(salary) by Name计算每个Name的薪资总和,得到汇总后的数据集。 - 添加总行数列:使用
toscalar(aggregated_data | count)获取汇总结果的总行数,再通过extend将这个值添加为每行的RowCount列。
内容的提问来源于stack exchange,提问作者Born2Code
相关产品推荐
相关产品推荐

