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

如何在KQL查询中筛选保留数据集中最新时间对应的所有行

KQL 保留数据集中最新时间对应所有行的实现方案

以下是两种可直接落地的实现方式,均能返回你示例中Kate、Aria对应的两条最新记录:

方法1:全局最大时间匹配(性能最优,推荐)

先计算整个数据集的最大时间戳,再过滤匹配该时间的所有行,不需要全表排序,大表查询效率更高:

// 假设你的源表名为T,可替换为实际表名/结果集
let max_ingestion_time = toscalar(T | summarize max(['Ingestion DateTime']));
T
| where ['Ingestion DateTime'] == max_ingestion_time

说明:

  • toscalar() 函数会将聚合得到的最大时间转为单值标量,供后续过滤逻辑直接调用
  • 不会修改源数据的列结构,返回结果和原表字段完全一致

方法2:排序后按排名过滤(符合排序+过滤的需求)

先按时间倒序排序,再对时间做排名,仅保留排名为1(即最新时间)的行:

T
// 按 ingestion 时间倒序排序
| order by ['Ingestion DateTime'] desc
// 对时间列做全局排名,时间相同则排名一致
| extend time_rank = rank() over(order by ['Ingestion DateTime'] desc)
// 仅保留最新时间对应的行
| where time_rank == 1
// 清理辅助生成的排名列
| project-away time_rank

说明:

  • 如果需要同时查看所有数据的时间排序情况,可直接注释掉最后两行过滤逻辑查看完整排序结果
  • rank() 函数会给相同时间的行分配相同排名,完美适配保留所有最新时间行的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:54:03