适用于:
Databricks SQL
Databricks Runtime 18.0 及更高版本
使用多个 Theta Sketch 缓冲区,并使用集联合将它们合并到一个结果缓冲区中。 使用此函数合并不同分区或时间段的草图。
Syntax
theta_union_agg ( sketch [, lgNomEntries ] )
Arguments
-
草图:二进制格式的 Theta Sketch(如聚合函数)。
theta_sketch_agg -
lgNomEntries:指定联合缓冲区名义条目的 log-base-2 的可选
INTEGER文本。 必须介于 4 到 26 之间(含)。 默认值为 12。 较高的值可提供更好的准确性,但使用更多内存。
退货
一个 BINARY 值,该值包含合并的序列化的 Theta Sketch,表示所有输入草图的并集。
备注
- 联合作处理具有不同
lgNomEntries值的输入草图。 -
NULL聚合期间忽略值。 - 若要完全合并两个草图,请改用标量
theta_union函数 。
错误消息
示例
-- Merge sketches from different groups
> SELECT theta_sketch_estimate(theta_union_agg(sketch)) FROM (
SELECT theta_sketch_agg(col) AS sketch FROM VALUES (1), (2), (3) AS tab(col)
UNION ALL
SELECT theta_sketch_agg(col) AS sketch FROM VALUES (3), (4), (5) AS tab(col)
) t;
5
-- Merge sketches with custom lgNomEntries
> SELECT theta_sketch_estimate(theta_union_agg(sketch, 15)) FROM (
SELECT theta_sketch_agg(col) AS sketch FROM VALUES (1), (2) AS tab(col)
UNION ALL
SELECT theta_sketch_agg(col, 20) AS sketch FROM VALUES (2), (3) AS tab(col)
) t;
3