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

如何修改Kusto查询以展示每个Id的最新数据?

解决Kusto查询中重复Id仅保留最新数据的问题

要让查询仅展示每个Id的最新数据,核心逻辑是按Id分组后,保留每组中时间戳最晚的记录。以下是两种常用的修改方案:

方案一:使用partition by + top

这种写法逻辑直观,按Id拆分数据集后,每组取最新的一条记录:

customEvents
| where name == "Tracker"
| project 
    Id = tostring(customDimensions["Id"]),
    Rank = tostring(customDimensions["Rank"]),
    EventTimestamp = timestamp  // 保留事件时间戳用于判断新旧
| partition by Id (
    top 1 by EventTimestamp desc  // 每组取时间戳最大的第一条数据
)

方案二:使用summarize + arg_max

这种写法更简洁,通过聚合函数直接提取每个Id对应的最新记录:

customEvents
| where name == "Tracker"
| extend 
    Id = tostring(customDimensions["Id"]),
    Rank = tostring(customDimensions["Rank"])
| summarize arg_max(timestamp, *) by Id  // 按Id分组,取timestamp最大的那条记录的所有字段
| project Id, Rank  // 只保留需要的列

说明

  • timestamp是customEvents表默认的时间字段,用于判断记录的新旧;如果你的表中用的是其他时间字段,替换成对应字段名即可。
  • 两种方案都能实现需求,arg_max的写法在大数据量下性能更优。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 13:40:44