dcountif() (функция агрегирования)
Оценивает количество различных значений expr для строк, в которых предикат имеет true
значение .
Значения NULL игнорируются и не учитываются при вычислении.
Примечание
Эта функция используется в сочетании с оператором summarize.
Синтаксис
dcountif
(
expr, predicate, [,
точность])
Дополнительные сведения о соглашениях о синтаксисе.
Параметры
Имя | Тип | Обязательно | Описание |
---|---|---|---|
expr | string |
✔️ | Выражение, используемое для вычисления агрегирования. |
predicate | string |
✔️ | Выражение, используемое для фильтрации строк. |
Точность | int |
Управление скоростью и точностью. Если не задано иное, по умолчанию используется значение 1 . Поддерживаемые значения см. в разделе Точность оценки . |
Возвращаемое значение
Возвращает оценку количества различных значений expr для строк, в которых предикат имеет true
значение .
Совет
dcountif()
может возвращать ошибку в случаях, когда все строки или ни одна из строк не передают Predicate
выражение.
Пример
В этом примере показано, сколько типов событий со смертельным исходом произошло в каждом состоянии.
StormEvents
| summarize DifferentFatalEvents=dcountif(EventType,(DeathsDirect + DeathsIndirect)>0) by State
| where DifferentFatalEvents > 0
| order by DifferentFatalEvents
Показанная таблица результатов содержит только первые 10 строк.
Состояние | DifferentFatalEvents |
---|---|
Калифорния | 12 |
Техас | 12 |
ОКЛАХОМА | 10 |
Иллинойс | 9 |
Канзас | 9 |
НЬЮ-ЙОРК | 9 |
НЬЮ-ДЖЕРСИ | 7 |
ВАШИНГТОН | 7 |
Мичиган | 7 |
Миссури | 7 |
... | ... |
Точность оценки
Эта функция использует вариант алгоритма 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 сигмы.
На следующем изображении показана функция распределения вероятности относительной погрешности оценки (в процентах) для всех поддерживаемых параметров точности:
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по