You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Kusto返回表中max()对应行,同时展示未参与max分组的其他列

最优解决方案:使用arg_max聚合函数

你不需要额外做join或者in查询,KQL内置的arg_max()聚合可以直接满足需求:按指定字段分组后,取分组内某列最大值对应的整行所有数据,语法如下:

SigninLogs 
| where ResultType == 0 
| summarize arg_max(TimeGenerated, *) by UserPrincipalName

参数说明:

  • 第一个参数TimeGenerated:指定用来取最大值的基准列
  • 第二个参数*:表示返回最大值对应行的所有列,你也可以换成指定列名,比如arg_max(TimeGenerated, AppDisplayName, ClientAppUsed, Location)仅返回需要的列
  • 最后by UserPrincipalName:指定分组维度,和你原查询的逻辑完全一致

多列关联join补充方案

如果有特殊场景必须用你原有的聚合结果关联回原表,KQL的join是支持多列关联的,不需要局限于单列关联,示例如下:

// 先生成每个用户最新成功登录的聚合结果
let latest_signin = SigninLogs 
| where ResultType == 0 
| summarize max_login_time = max(TimeGenerated) by UserPrincipalName;
// 用用户主体名+登录时间双字段关联回原表取全量字段
latest_signin
| join kind=inner (SigninLogs | where ResultType == 0) 
on $left.UserPrincipalName == $right.UserPrincipalName, $left.max_login_time == $right.TimeGenerated

内容的提问来源于stack exchange,提问作者AdamC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 15:45:03