我有一张表,看起来像这样:
id  timestamp  value1  value2
 1  09:12:37     1       1
 1  09:12:42     1       2
 1  09:12:41     1       3
 1  10:52:16     2       4
 1  10:52:18     2       5
 2  09:33:12     3       1
 2  09:33:15     3       2
 2  09:33:13     3       3我需要按id和value1分组。对于每个组,我希望具有最高时间戳的行。
上表的结果如下所示:
id  timestamp  value1  value2
 1  09:12:42     1       2
 2  09:33:15     3       2我知道有summarize运算符,它会给我以下结果:
mytable
| project id, timestamp, value1, value2
| summarize max(timestamp) by id, value1
Result:
     id  timestamp  value1
      1  09:12:42     1
      2  09:33:15     3但我也无法获得此行的value2。
提前感谢
发布于 2019-03-20 23:51:23
如果我正确理解了您的问题,您应该能够使用summarize arg_max()
文档:https://docs.microsoft.com/en-us/azure/kusto/query/arg-max-aggfunction
datatable(id:long, timestamp:datetime, value1:long, value2:long)
[
 1, datetime(2019-03-20 09:12:37), 1, 1,
 1, datetime(2019-03-20 09:12:42), 1, 2,
 1, datetime(2019-03-20 09:12:41), 1, 3,
 1, datetime(2019-03-20 10:52:16), 2, 4,
 1, datetime(2019-03-20 10:52:18), 2, 5, // this has the latest timestamp for id == 1
 2, datetime(2019-03-20 09:33:12), 3, 1,
 2, datetime(2019-03-20 09:33:15), 3, 2, // this has the latest timestamp for id == 2
 2, datetime(2019-03-20 09:33:13), 3, 3,
]
| summarize arg_max(timestamp, *) by id这将导致:
| id | timestamp                   | value1 | value2 |
|----|-----------------------------|--------|--------|
| 2  | 2019-03-20 09:33:15.0000000 | 3      | 2      |
| 1  | 2019-03-20 10:52:18.0000000 | 2      | 5      |https://stackoverflow.com/questions/55260787
复制相似问题