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


dcount() (статистическая функция)

Область применения: ✅Microsoft Fabric

Вычисляет оценку количества различных значений, принимаемых скалярным выражением в сводной группе.

Значения NULL игнорируются и не учитываются в вычислении.

Примечание.

Статистическая функция dcount() в основном полезна для оценки кратности огромных наборов. Он торгует точностью для производительности и может возвращать результат, который зависит от выполнения. Порядок входных данных может повлиять на его выходные данные.

Примечание.

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

Синтаксис

dcount ( expr[,точность])

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

Параметры

Имя (название) Тип Обязательно Описание
expr string ✔️ Входные данные, значения которых должны быть подсчитываются.
точность int Значение, определяющее запрошенную точность оценки. Значение по умолчанию — 1. См . сведения о точности оценки поддерживаемых значений.

Возвраты

Возвращает оценку количества различных значений expr в группе.

Примеры

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

StormEvents
| summarize DifferentEvents=dcount(EventType) by State
| order by DifferentEvents

Показанная таблица результатов содержит только первые 10 строк.

Штат Разные события
ТЕХАС двадцать семь
КАЛИФОРНИЯ 26
ПЕНСИЛЬВАНИЯ двадцать пять
ДЖОРДЖИЯ двадцать четыре
ИЛЛИНОЙС двадцать три
МЭРИЛЕНД двадцать три
СЕВЕРНАЯ КАРОЛИНА двадцать три
МИЧИГАН двадцать два
ФЛОРИДА двадцать два
ОРЕГОН двадцать один
КАНЗАС двадцать один
... ...

Точность оценки

Эта функция использует вариант алгоритма HyperLogLog (HLL), который выполняет стохастиическую оценку кратности набора. Алгоритм предоставляет "рычаг управления", который можно использовать для выравнивания точности и времени выполнения под размер памяти:

Правильность Ошибка (%) Число записей
0 1,6 212
1 0,8 214
2 0,4 216
3 0,28 217
4 0,2 218

Примечание.

Столбец "число записей" — это количество 1-байтных счетчиков в реализации HLL.

Алгоритм включает в себя некоторые положения для выполнения идеального подсчета (нулевой ошибки), если кратность набора достаточно мала:

  • если уровень точности равен 1, возвращаются значения 1000;
  • если уровень точности равен 2, возвращаются значения 8000.

Границы погрешности — вероятностная, а не теоретическая граница. Значение является стандартным отклонением распределения погрешностей (сигма). 99,7 % оценок будут иметь относительную погрешность в 3 сигмы.

На следующем изображении показана функция распределения вероятности относительной погрешности оценки (в процентах) для всех поддерживаемых параметров точности:

График, показывающий распределение ошибок hll.