根据 Kusto 中一列的最大值获取其他列

All*_*ris 3 kql azure-data-explorer appinsights kusto-explorer

我正在尝试编写一个 Kusto 查询来查找在由另一列分组的列中具有最大值的记录,但还需要第三个(剩余)列。

假设有三列 A(时间戳)B(impvalue:数字)和 C(另一个值:字符串)。我需要获取按 C 和最大时间戳分组的记录及其相应的 B 列。

在 Sql 中,我很清楚如何使用自连接来做到这一点。我是 Kusto 的新手,我尝试了一些与 summarise、join 和 top 运算符的组合,但无法使其工作。

例子:

在此输入图像描述

输出:

在此输入图像描述

Yon*_*i L 5

您可以使用arg_max()聚合函数:https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/arg-max-aggfunction

例如:

datatable(A:datetime, B:long, C:string)
[
    datetime(2020-08-20 12:00:00), 50,  "abc",
    datetime(2020-08-20 12:10:00), 30,  "abc",
    datetime(2020-08-20 12:05:00), 100, "abc",
    datetime(2020-08-20 12:00:00), 40,  "def",
    datetime(2020-08-20 12:05:00), 120, "def",
    datetime(2020-08-20 12:10:00), 80,  "def",
]
| summarize arg_max(A, *) by C
Run Code Online (Sandbox Code Playgroud)
C A
ABC 2020-08-20 12:10:00.0000000 30
定义 2020-08-20 12:10:00.0000000 80