【问题标题】:Query to get the latest treatment for each machine查询获取每台机器的最新处理
【发布时间】:2022-08-17 21:18:08
【问题描述】:

首先让我说我不关心我得到答案的 SQL 类型。实际上,我正在 Kusto 中创建我的问题,但 stackoverflow 中的 Kusto 线程大部分时间都已死机。这只是为了让我知道我可以通过哪种方式做到这一点,以便我可以以某种方式将其翻译成 Kusto。

我有一个名为“MachineData”的数据库,看起来像这样(但有数十万条记录)

我想做的是为每台机器获得机器所做的最新处理。换句话说,我希望每台机器都获得最新的 StartTime。

我想过做一些我说“按序列号排序,开始时间”的事情,但是因为有数十万条记录,所以我的系统无法做到这一点而不会崩溃,因为存在所有的数据量,还有这个方法仍然会向我显示每台机器的所有记录,而我想要做的只是获取最新的 StartTime。

我想做的另一件事是这样的,

MachineData
| top 1 by SerialNumber, StartTime

但是 Kusto 上的“top”命令只接受一个参数来排序。

    标签: sql kql


    【解决方案1】:

    可能您正在寻找 GROUP BY 和 max():

    SELECT SerialNumber, max(StartTime) as MostRecentStartTime 
      FROM MachineData
     GROUP BY SerialNumber;
    

    【讨论】:

    • 那很完美。我试过机器数据 |通过 SerialNumber 总结 LatestEvent = max(StartTime) ,这似乎可以解决问题。
    猜你喜欢
    • 2021-01-10
    • 1970-01-01
    • 2020-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    • 2016-01-29
    相关资源
    最近更新 更多