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

如何修改KQL查询以识别同一DeviceID的Serial字段变更记录?

KQL查询调整:筛选DeviceID对应的Serial变更记录

要实现仅展示同一DeviceID下Serial字段发生变更的记录,你可以通过窗口函数对比历史Serial值来实现,具体步骤如下:

  1. 保留原有数据解析与字段投影逻辑
  2. 按DeviceID分组、Date排序,获取每个设备上一条记录的Serial值
  3. 筛选当前Serial与上一条Serial不一致的记录

修改后的完整查询

MyInventory_CL
| mvexpand parse_json(Health_s)
| project Date, DeviceID, ['Type'] = Health_s['Type'], ['XOLabel'] = Health_s['XOLabel'], ['Serial'] = Health_s['XOSerial Number'], ['Placement'] = Health_s['XOPlNumber'], Status
// 按设备分组,按日期排序,获取上一条记录的Serial
| partition by DeviceID
  (
    order by Date asc
    | extend prev_Serial = prev(Serial)
  )
// 筛选出Serial发生变更的记录(排除无历史的第一条记录)
| where isnotnull(prev_Serial) and Serial != prev_Serial

关键逻辑说明

  • partition by DeviceID:将数据按设备ID分组,确保仅对比同一设备的历史记录
  • order by Date asc:保证按时间顺序获取上一条记录,避免顺序混乱导致对比错误
  • prev(Serial):窗口函数,获取当前设备上一条(按Date排序)的Serial值
  • where isnotnull(prev_Serial) and Serial != prev_Serial:过滤出确实发生变更的记录,排除每个设备无历史对比的第一条记录

如果你的Date字段格式存在解析问题,或需要更精确的时间排序,可以补充Date字段的具体格式信息,我再帮你调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 02:24:59