Кусто резюмируйте, где между?
У меня есть серия журналов, которые я группирую на основе определенных шагов (на основе данных в строке)
Один шаг потенциально может быть повторен несколько раз после официального завершения последовательности (шаг 4), я бы хотел отклонить их из инструкции summarize.
В таблице ниже первая группа должна находиться между строками 1 и 6, вторая группа должна находиться между строками 9 и 14. Я бы суммировал их по группам, но я хочу отклонить записи, которые появляются после шага 4 для каждой последовательности.
пример данных
Обратите внимание, что я не могу использовать min/max для процентов на шаге 3, так как это даст мне значения, которые появляются после шага 4 для некоторых группировок.
2 ответа
Похоже, для этого уже есть отличный оператор! Спасибо одному из моих коллег за указание на это.
scan
Оператор
https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/scan-operator
| scan with_match_id=m_id with
(
step s1: step== "1";
step s2: step!= "4" and timestamp - s1.timestamp <= 5m;
step s3: step== "4" and timestamp - s1.timestamp <= 5m;
)
Лучше всего отфильтровать ненужные записи до
summarize
, нравится:
...
| where step != 4
| summarize ... by group
Также обратите внимание, что существуют различные
***if
функции агрегирования, и вы можете использовать их так:
...
| summarize minif(timestamp, step != 4), maxif(timestamp, step != 4), ... by group
Вы можете увидеть все функции агрегации здесь, и вы можете искать
if(
чтобы увидеть все функции агрегирования, которые принимают предикат.