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

如何用KQL查询获取各Resource/MetricName组合的最新Timestamp对应MetricValue

问题描述

现有如下时间序列数据:

TimestampResourceMetricNameMetricValue
T1db1DocumentCount110
T2db1DocumentCount120
T2db1DataUsage40000
T11db2DocumentCount60
T12db2DocumentCount70
T21db3DataUsage100000
T22db3DataUsage150000

需要编写KQL查询,获取每个Resource/MetricName组合对应的最新Timestamp的MetricValue,期望结果如下:

TimestampResourceMetricNameMetricValue
T2db1DocumentCount120
T2db1DataUsage40000
T12db2DocumentCount70
T22db3DataUsage150000
解决方案

方法1:使用arg_max()函数(推荐)

arg_max()是Kusto中专门用于获取分组内指定列最大值对应行数据的函数,适配这类场景:

-- 替换MetricsTable为你的实际表名
MetricsTable
| summarize arg_max(Timestamp, MetricValue) by Resource, MetricName
| project Timestamp, Resource, MetricName, MetricValue

说明:

  • summarize arg_max(Timestamp, MetricValue) by Resource, MetricName:按Resource和MetricName分组,筛选出每组中Timestamp最大的行,同时保留对应的MetricValue
  • project:调整列的顺序,与期望结果匹配

方法2:使用partition by分组排序

通过对每个分组单独排序后取首行,同样可以实现需求:

-- 替换MetricsTable为你的实际表名
MetricsTable
| partition by Resource, MetricName (
    sort by Timestamp desc
    | take 1
)

说明:

  • partition by Resource, MetricName:将数据按指定字段拆分为独立分组
  • 每个分组内按Timestamp降序排序,取第一行即为该分组的最新数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 04:18:19