Агрегатная функция approx_count_distinct
Область применения: Databricks SQL
Databricks Runtime
Возвращает предполагаемое количество уникальных values из expr
в рамках группы.
Реализация использует плотную версию алгоритма HyperLogLog++ (HLL++), состояние алгоритма оценки кратности искусства.
Результаты точны в значении по умолчанию от 5%, которое является производным от значения максимального относительного стандартного отклонения, хотя это можно настроить с relativeSD
параметром, как упоминалось ниже.
Синтаксис
approx_count_distinct(expr[, relativeSD]) [FILTER ( WHERE cond ) ]
Эту функцию также можно вызвать как функцию window с помощью предложения OVER
.
Аргументы
-
expr
: может быть любого типа, для которого определена эквивалентность. -
relativeSD
: определяет максимально допустимое относительное стандартное отклонение. -
cond
: необязательное логическое выражение для фильтрации строк, используемых для агрегирования.
Возвраты
Значение BIGINT.
Примеры
> SELECT approx_count_distinct(col1) FROM VALUES (1), (1), (2), (2), (3) tab(col1);
3
> SELECT approx_count_distinct(col1) FILTER(WHERE col2 = 10)
FROM VALUES (1, 10), (1, 10), (2, 10), (2, 10), (3, 10), (1, 12) AS tab(col1, col2);
3