немного сложно ответить, не имея представления о ваших данных и их структуре.
, который сказал, вот попытка ответить на основе словесного описания в вашем вопросе, используя встроенный плагин activity_counts_metrics
( ссылка на документ ):
datatable(day:datetime, result_code:int)
[
datetime(2019-05-01), 500,
datetime(2019-05-10), 500,
datetime(2019-05-20), 500,
datetime(2019-06-01), 500,
datetime(2019-06-02), 500,
datetime(2019-06-03), 501,
datetime(2019-06-04), 500,
datetime(2019-06-05), 500,
datetime(2019-06-06), 500,
datetime(2019-06-07), 500,
datetime(2019-06-08), 500,
datetime(2019-06-09), 500,
datetime(2019-06-10), 500,
datetime(2019-06-11), 500,
datetime(2019-06-12), 500,
datetime(2019-06-13), 502,
datetime(2019-06-14), 500,
]
| evaluate activity_counts_metrics(result_code, day, ago(60d), now(), 'week')
// try using 'month' too, instead of 'week'
это возвращает:
| day | count | dcount | new_dcount | aggregated_dcount |
|-----------------------------|-------|--------|------------|-------------------|
| 2019-04-28 00:00:00.0000000 | 1 | 1 | 1 | 1 |
| 2019-05-05 00:00:00.0000000 | 1 | 1 | 1 | 1 |
| 2019-05-19 00:00:00.0000000 | 1 | 1 | 1 | 1 |
| 2019-05-26 00:00:00.0000000 | 1 | 1 | 1 | 1 |
| 2019-06-02 00:00:00.0000000 | 7 | 2 | 2 | 2 |
| 2019-06-09 00:00:00.0000000 | 6 | 2 | 2 | 2 |
где:
TimelineColumn : время начала окна [неделя / месяц / и т. Д.].
count : Общее количество записей во временном окне.
dcount : Значения различных идентификаторов учитываются во временном окне.
new_dcount : отдельные значения идентификатора во временном окне и сравнение со всеми предыдущими временными окнами.
aggregated_dcount : общее количество агрегированных различных значений идентификатора от 1-го временного окна до текущего (включительно).
Если вы заинтересованы в том, чтобы увидеть реальные отдельные коды (за неделю / месяц), что-то в следующих строках может дать вам направление:
datatable(day:datetime, result_code:int)
[
datetime(2019-05-01), 500,
datetime(2019-05-10), 500,
datetime(2019-05-20), 500,
datetime(2019-06-01), 500,
datetime(2019-06-02), 500,
datetime(2019-06-03), 501,
datetime(2019-06-04), 500,
datetime(2019-06-05), 500,
datetime(2019-06-06), 500,
datetime(2019-06-07), 500,
datetime(2019-06-08), 500,
datetime(2019-06-09), 500,
datetime(2019-06-10), 500,
datetime(2019-06-11), 500,
datetime(2019-06-12), 500,
datetime(2019-06-13), 502,
datetime(2019-06-14), 500,
]
| summarize distinct_codes = make_set(result_code) by startofweek(day)
| extend distinct_codes_count = array_length(distinct_codes)
это возвращает:
| start_of_week | distinct_codes | distinct_codes_count |
|-----------------------------|----------------|----------------------|
| 2019-04-28 00:00:00.0000000 | 500 | 1 |
| 2019-05-05 00:00:00.0000000 | 500 | 1 |
| 2019-05-19 00:00:00.0000000 | 500 | 1 |
| 2019-05-26 00:00:00.0000000 | 500 | 1 |
| 2019-06-02 00:00:00.0000000 | 500, 501 | 2 |
| 2019-06-09 00:00:00.0000000 | 500, 502 | 2 |