Функция hll_union_agg
Область применения: Databricks SQL Databricks Runtime 13.3 LTS и выше
Эта функция использует алгоритм HyperLogLog для объединения группы эскизов в одну.
Запросы могут использовать результирующие буферы для вычисления приблизительных уникальных счетчиков с помощью функции hll_sketch_estimate .
Реализация использует библиотеку Apache Datasketches. Дополнительные сведения см. в HLL.
Синтаксис
hll_union_agg ( expr [, allowDifferentLgConfigK ] )
Эту функцию также можно вызвать как функцию window с помощью предложения OVER
.
Аргументы
-
expr
BINARY
: выражение с эскизом, созданным hll_sketch_agg. -
allowDifferentLgConfigK
: необязательноеBOOLEAN
константное выражение, определяющее, разрешено ли объединение эскизов с разными параметрами valueslgConfigK. По умолчанию используется значение false.
Возвраты
Буфер BINARY
, содержащий эскиз HyperLogLog, вычисляемый в результате объединения входных выражений одной группы.
Если параметр allowDifferentLgConfigK
имеет значение true, результирующий эскиз использует меньший из двух предоставленных lgConfigK
values.
Примеры
> SELECT hll_sketch_estimate(hll_union_agg(sketch, true))
FROM (SELECT hll_sketch_agg(col) as sketch
FROM VALUES (1) AS tab(col)
UNION ALL
SELECT hll_sketch_agg(col, 20) as sketch
FROM VALUES (1) AS tab(col));
1
> SELECT hll_sketch_estimate(hll_union_agg(sketch, false))
FROM (SELECT hll_sketch_agg(col) as sketch
FROM VALUES (1) AS tab(col)
UNION ALL
SELECT hll_sketch_agg(col, 20) as sketch
FROM VALUES (1) AS tab(col));
error