如何在Kusto中按列分组取某列最大值并获取对应其余列数据
Kusto 按分组取某列最大值对应整行记录实现方案
最优实现:使用arg_max聚合算子
Kusto内置的arg_max聚合函数原生支持该需求,无需像SQL一样写自连接,语法简洁高效:
// 将下方的TableName替换为你的实际数据表名 TableName | summarize arg_max(A, *) by C
参数说明:
- 第一个参数
A:指定要取最大值的参考列,这里就是时间戳列A - 第二个参数
*:表示返回最大值对应行的所有列数据,如果你只需要返回指定的A、B列,也可以替换为A, B by C:指定按C列分组计算
可选实现:partition + top组合
如果后续需要扩展为每个分组返回TopN条记录,可以用该方案,灵活度更高:
TableName | partition by C ( // 每个C分组内按A倒序排序取第一条,如需取前N条修改1为对应数值即可 top 1 by A desc )
内容的提问来源于stack exchange,提问作者Allen Harris
相关产品推荐
相关产品推荐

