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

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

Примечание

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

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

Примечание

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

Синтаксис

count_distinctif(Expr,Предикат)

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

Параметры

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

Возвращаемое значение

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

Пример

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

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

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

Состояние UniqueFatalEvents
Техас 12
Калифорния 12
ОКЛАХОМА 10
НЬЮ-ЙОРК 9
Канзас 9