hll_union_agg
函数
适用于: Databricks SQL Databricks Runtime 13.3 LTS 及更高版本
此函数利用 HyperLogLog 算法将一组草图合并为一个草图。
查询可以使用生成的缓冲区通过 hll_sketch_estimate 函数计算近似的唯一计数。
实现使用 Apache Datasketches 库。 有关详细信息,请参阅 HLL。
语法
hll_union_agg ( expr [, allowDifferentLgConfigK ] )
还可以使用 OVER
子句将此函数作为窗口函数调用。
参数
expr
:包含 hll_sketch_agg 生成的草图的BINARY
表达式。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