approx_count_distinct
агрегатная функция
Область применения: Databricks SQL Databricks Runtime
Возвращает предполагаемое количество различных значений в expr
группе.
В реализации используется плотная версия алгоритма HyperLogLog++ (HLL++), который является самым современного алгоритма оценки кратности.
Результаты точны в пределах значения по умолчанию 5 %, которое является производным от значения максимального относительного стандартного отклонения, хотя это можно настроить с relativeSD
помощью параметра, как указано ниже.
Синтаксис
approx_count_distinct(expr[, relativeSD]) [FILTER ( WHERE cond ) ]
Эту функцию также можно вызвать как оконную функцию с помощью OVER
предложения .
Аргументы
expr
: может иметь любой тип, для которого определена эквивалентность.relativeSD
: определяет максимально допустимое относительное стандартное отклонение.cond
: необязательное логическое выражение, фильтрующее строки, используемые для агрегирования.
Возвращает
A 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