grouping - 按进程分组标签
问题描述
我有一个变量在一个过程中随着时间的推移而被收集。该过程在 STATUS 等于 2 时开始,并在 STATUS 等于 11 时结束。我需要在 kusto 中开发一个 ID 列,该列在每次进程运行时对标记值进行分组。你能帮我解决这个问题吗?
解决方案
下面是生成Id
列的一个选项,使用row_cumsum()
, 并基于您提供的输入数据集。它可能会为您提供实施完整解决方案的方向
datatable(timestamp:datetime, tag:string, value:double, status:int)
[
datetime(2020-07-04 12:00), 'Tag1', 15.2391, 2,
datetime(2020-07-04 12:02), 'Tag1', 13.452, 2,
datetime(2020-07-04 12:04), 'Tag1', 17.239, 4,
datetime(2020-07-04 12:15), 'Tag1', 21.891, 4,
datetime(2020-07-04 12:17), 'Tag1', 18.9, 11,
datetime(2020-07-04 12:30), 'Tag1', 12, 2,
datetime(2020-07-04 12:32), 'Tag1', 15, 2,
datetime(2020-07-04 12:33), 'Tag1', 9, 2,
datetime(2020-07-04 12:45), 'Tag1', 17.5, 4,
datetime(2020-07-04 12:48), 'Tag1', 42, 11,
datetime(2020-07-04 13:12), 'Tag1', 22, 2,
datetime(2020-07-04 13:20), 'Tag1', 19, 7,
datetime(2020-07-04 13:50), 'Tag1', 51, 7,
datetime(2020-07-04 14:10), 'Tag1', 39, 8,
datetime(2020-07-04 14:20), 'Tag1', 37, 11,
]
| order by tag asc, timestamp asc, status asc
| extend Id = toint(prev(status) == 11)
| extend Id = 1 + row_cumsum(Id)
-->
| timestamp | tag | value | status | Id |
|-----------------------------|------|---------|--------|----|
| 2020-07-04 12:00:00.0000000 | Tag1 | 15.2391 | 2 | 1 |
| 2020-07-04 12:02:00.0000000 | Tag1 | 13.452 | 2 | 1 |
| 2020-07-04 12:04:00.0000000 | Tag1 | 17.239 | 4 | 1 |
| 2020-07-04 12:15:00.0000000 | Tag1 | 21.891 | 4 | 1 |
| 2020-07-04 12:17:00.0000000 | Tag1 | 18.9 | 11 | 1 |
| 2020-07-04 12:30:00.0000000 | Tag1 | 12 | 2 | 2 |
| 2020-07-04 12:32:00.0000000 | Tag1 | 15 | 2 | 2 |
| 2020-07-04 12:33:00.0000000 | Tag1 | 9 | 2 | 2 |
| 2020-07-04 12:45:00.0000000 | Tag1 | 17.5 | 4 | 2 |
| 2020-07-04 12:48:00.0000000 | Tag1 | 42 | 11 | 2 |
| 2020-07-04 13:12:00.0000000 | Tag1 | 22 | 2 | 3 |
| 2020-07-04 13:20:00.0000000 | Tag1 | 19 | 7 | 3 |
| 2020-07-04 13:50:00.0000000 | Tag1 | 51 | 7 | 3 |
| 2020-07-04 14:10:00.0000000 | Tag1 | 39 | 8 | 3 |
| 2020-07-04 14:20:00.0000000 | Tag1 | 37 | 11 | 3 |
推荐阅读
- spring - 如何将参数作为环境变量传递
- javascript - 如果文本为“13”,如何使输入自动提交到 URL
- android - 如何制作没有背景颜色的 MediaStyle 通知?
- python - 获取数量和单位
- typescript - 如何使用交集类型默认泛型函数参数
- laravel - Laravel 禁用或启用准备输入以进行验证
- discord - Discord.js XP 系统,添加角色作为成员升级
- c - 用 C 而不是 C++ 制作游戏。在 txt 文件中保存、替换和排序分数时需要帮助
- c# - 有没有办法使用 C# 正则表达式获取字符串中字符内的文本?
- c++ - 我可以将一个值放入存储在 C++ 中的映射中的向量中吗?