You need to enable JavaScript to run this app. 查找设备最近一次状态变更时间及对应状态的SQL/Kusto实现方法
优惠活动
大模型
产品
解决方案
定价
更多

查找设备最近一次状态变更时间及对应状态的SQL/Kusto实现方法

解决方案思路

SQL 实现

  • 方法1:窗口函数法
    用ROW_NUMBER()窗口函数按设备编号SerialNumber分区,按状态变更时间Transition_Date倒序排序,每个分区内排序为1的记录就是对应设备最近一次的状态变更记录。
    示例代码:
    SELECT SerialNumber, State, Transition_Date
    FROM (
        SELECT 
            SerialNumber,
            State,
            Transition_Date,
            -- 按设备分组,变更时间倒序排名
            ROW_NUMBER() OVER(PARTITION BY SerialNumber ORDER BY Transition_Date DESC) AS rank_num
        FROM device_state_table -- 替换为你的实际表名
    ) temp
    WHERE rank_num = 1
    
    若需保留同一设备同一最新时间下的多条变更记录,可将ROW_NUMBER()替换为RANK()。
  • 方法2:子查询关联法
    先分组查询得到每个设备的最新变更时间,再将结果和原表关联,匹配设备编号和变更时间,就能得到对应状态值。
    示例代码:
    SELECT t1.SerialNumber, t1.State, t1.Transition_Date
    FROM device_state_table t1
    INNER JOIN (
        SELECT SerialNumber, MAX(Transition_Date) AS latest_date
        FROM device_state_table
        GROUP BY SerialNumber
    ) t2 ON t1.SerialNumber = t2.SerialNumber AND t1.Transition_Date = t2.latest_date
    

Kusto 实现

直接使用Kusto内置的arg_max()聚合函数,该函数可以返回指定列最大值对应的其他字段内容,一步得到结果。
示例代码:

device_state_table // 替换为你的实际表名
| summarize arg_max(Transition_Date, State) by SerialNumber
| project SerialNumber, State, Transition_Date

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 08:54:03