Функция hll_union_agg
Область применения: Databricks SQL Databricks Runtime 13.3 LTS и выше
Эта функция использует алгоритм HyperLogLog для объединения группы эскизов в одну.
Запросы могут использовать результирующие буферы для вычисления приблизительных уникальных счетчиков с помощью функции hll_sketch_estimate .
Реализация использует библиотеку Apache Datasketches. Дополнительные сведения см. в HLL.
Синтаксис
hll_union_agg ( expr [, allowDifferentLgConfigK ] )
Эту функцию также можно вызвать как функцию окна с помощью OVER
предложения.
Аргументы
expr
BINARY
: выражение с эскизом, созданным hll_sketch_agg.allowDifferentLgConfigK
: необязательное константноеBOOLEAN
выражение, определяющее, следует ли разрешать слияние эскизов с различными значениями lgConfigK. По умолчанию используется значение false.
Возвраты
Буфер BINARY
, содержащий эскиз HyperLogLog, вычисляемый в результате объединения входных выражений одной группы.
allowDifferentLgConfigK
Если параметр имеет значение true, результирующий эскиз использует меньшее из двух предоставленных lgConfigK
значений.
Примеры
> 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