0

在此处输入图像描述我在 Kusto 表中有以下数据。(Run_Date 日期时间传感器字符串是表中的两列)

我需要以这样的方式添加自动增量列,如果运行日期或传感器值发生更改,列应该增加一。

请参考随附的截图。我已经尝试在 kusto 中使用 Rank 和 Rownumber 函数,但对我来说没有运气。

4

2 回答 2

1

您可以使用scan运算符:https ://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/scan-operator

datatable(run_date:datetime, sensor:string)
[
    datetime(2021-08-05), "A",
    datetime(2021-08-05), "A",
    datetime(2021-08-05), "A",
    datetime(2021-08-05), "B",
    datetime(2021-08-05), "B",
    datetime(2021-09-05), "B",
]
| order by run_date asc
| scan declare (_rank: long = 0) with 
(
    step s1: true => _rank = iff(run_date > s1.run_date or sensor != s1.sensor, s1._rank + 1, s1._rank);
)
运行日期 传感器 _秩
2021-08-05 00:00:00.0000000 一个 1
2021-08-05 00:00:00.0000000 一个 1
2021-08-05 00:00:00.0000000 一个 1
2021-08-05 00:00:00.0000000 2
2021-08-05 00:00:00.0000000 2
2021-09-05 00:00:00.0000000 3
于 2021-08-16T15:24:09.223 回答
0

另一种选择是使用row_rank()函数

datatable(run_date:datetime, sensor:string)
[
    datetime(2021-08-05), "A",
    datetime(2021-08-05), "A",
    datetime(2021-08-05), "A",
    datetime(2021-08-05), "B",
    datetime(2021-08-05), "B",
    datetime(2021-09-05), "B",
]
| extend Day = bin(run_date, 1d)
| extend RankColumn = strcat(Day, sensor)
| order by RankColumn asc 
| extend Rownumber = row_rank(RankColumn)
| project-away RankColumn, Day
于 2021-08-17T08:27:49.807 回答