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

如何在Azure Monitor KQL中按列分组计算两行差值

在Azure Log Analytics中用KQL批量计算多主机的数值差值

要批量计算所有主机的数值差值,核心是用partition by子句将数据按Hostname分组,确保prev()函数只在同一主机的范围内取上一条时间的数值,具体实现如下:

完整KQL查询

// 替换为你的实际表名
YourTableName
| sort by Hostname, TimeGenerated asc
| partition by Hostname (
    extend Difference = coalesce(Value - prev(Value), double(0))
)
| where Difference != 0
| project TimeGenerated, Hostname, Difference

逻辑说明

  1. 排序分组:先按Hostname和TimeGenerated升序排序,保证同一主机的记录按时间顺序排列
  2. 分组计算差值:通过partition by Hostname限定prev()的作用范围,仅在当前主机的历史记录中取上一条数值计算差值
  3. 过滤无效行:排除无前置记录的初始行(差值为0的行),只保留有效差值结果

结果验证

针对你提供的示例数据,执行上述查询后会得到预期结果:

TimeGeneratedHostnameDifference
2024-01-01T00:10:00host012
2024-01-01T00:10:00host024
2024-01-01T00:10:00host035

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 19:45:59