Поделиться через


count_distinctif() (функция агрегирования) — (предварительная версия)

Условно подсчитывает уникальные значения, указанные скалярным выражением для каждой сводной группы, или общее количество уникальных значений, если сводная группа опущена. Учитываются только записи, для которых вычисляется true предикат.

Примечание.

Эта функция используется в сочетании с оператором сводки.

Если требуется только оценка уникальных значений, рекомендуется использовать менее ресурсоемкую функцию агрегирования dcountif .

Примечание.

  • Эта функция ограничена 100M уникальными значениями. Попытка применить функцию к выражению, возвращающего слишком много значений, приведет к ошибке среды выполнения (HRESULT: 0x80DA0012).
  • Производительность функций может снизиться при работе с несколькими источниками данных из разных кластеров.

Синтаксис

count_distinctif(предикат экспра, )

Дополнительные сведения о соглашениях синтаксиса.

Параметры

Имя (название) Type Обязательно Описание
expr скаляр ✔️ Выражение, уникальное значение которого требуется подсчитать.
predicate string ✔️ Выражение, используемое для фильтрации записей для агрегирования.

Возвраты

Целочисленное значение, указывающее количество уникальных значений expr для каждой сводной группы, для всех записей, для которых предикат оцениваетсяtrue.

Пример

В этом примере показано, сколько типов событий шторма, вызывающих смерть, произошло в каждом состоянии. Будут подсчитываться только события шторма с ненулевым числом смертей.

StormEvents
| summarize UniqueFatalEvents=count_distinctif(EventType,(DeathsDirect + DeathsIndirect)>0) by State
| where UniqueFatalEvents > 0
| top 5 by UniqueFatalEvents

Выходные данные

Штат UniqueFatalEvents
TEXAS 12
CALIFORNIA 12
ОКЛАХОМА 10
NEW YORK 9
КАНЗАС 9