Поделиться через


Функция 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, результирующий эскиз использует меньший из двух предоставленных lgConfigKvalues.

Примеры

> 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