azure-application-insights - Power M Query/Kusto 从组中抢先
问题描述
我有一个看起来像这样的表:
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
我知道有一个汇总运算符会给我这个:
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。
提前致谢
解决方案
如果我正确理解您的问题,您应该可以使用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 |
推荐阅读
- ios - 为什么我的代码可以在 Xcode Playground 中运行,但不能在我的项目中运行?
- getstream-io - 在聊天中长时间不活动后的 CORS
- intentfilter - AAPT:错误:意外元素
在发现 - c# - 激活服务时无法解析 IDbContext
- scala - 使用 Spark/Scala 过滤带有 JSON 字段的 RDD 的 csv
- flutter - 如何在颤动中按下小部件时更改小部件的颜色?
- python - 在 Python 中使用带有 Lambda 的 Map 函数:TypeError: () 接受 0 个位置参数,但给出了 1 个
- amazon-web-services - 我们如何将 aws 实例区域从美国东部(弗吉尼亚北部)us-east-1 更改为亚太地区(孟买)ap-south-1?
- node.js - Nodemailer 无法识别来自环境变量的凭据
- php - Woocommerce 相关产品部分显示相同的产品