跳转到主要内容
uniqTheta 函数可对两个 uniqThetaSketch 对象执行集合运算,例如 ∪ / ∩ / × (并集/交集/差集) ,并返回一个包含结果的新 uniqThetaSketch 对象。 uniqThetaSketch 对象由带有 -State 的聚合函数 uniqTheta 构造而成。 UniqThetaSketch 是一种用于存储近似值集合的数据结构。 更多信息,请参见:Theta Sketch Framework

uniqThetaUnion

对两个 uniqThetaSketch 对象执行并集计算 (集合运算 ∪) ,结果是一个新的 uniqThetaSketch。
uniqThetaUnion(uniqThetaSketch,uniqThetaSketch)
参数
  • uniqThetaSketch – uniqThetaSketch 对象。
示例
SELECT finalizeAggregation(uniqThetaUnion(a, b)) AS a_union_b, finalizeAggregation(a) AS a_cardinality, finalizeAggregation(b) AS b_cardinality
FROM
(SELECT arrayReduce('uniqThetaState',[1,2]) AS a, arrayReduce('uniqThetaState',[2,3,4]) AS b );
┌─a_union_b─┬─a_cardinality─┬─b_cardinality─┐
│         4 │             2 │             3 │
└───────────┴───────────────┴───────────────┘

uniqThetaIntersect

对两个 uniqThetaSketch 对象执行 intersect 计算 (集合运算 ∩) ,结果会得到一个新的 uniqThetaSketch。
uniqThetaIntersect(uniqThetaSketch,uniqThetaSketch)
参数
  • uniqThetaSketchuniqThetaSketch 对象。
示例
SELECT finalizeAggregation(uniqThetaIntersect(a, b)) AS a_intersect_b, finalizeAggregation(a) AS a_cardinality, finalizeAggregation(b) AS b_cardinality
FROM
(SELECT arrayReduce('uniqThetaState',[1,2]) AS a, arrayReduce('uniqThetaState',[2,3,4]) AS b );
┌─a_intersect_b─┬─a_cardinality─┬─b_cardinality─┐
│             1 │             2 │             3 │
└───────────────┴───────────────┴───────────────┘

uniqThetaNot

对两个 uniqThetaSketch 对象执行 a_not_b 计算 (集合运算 ×) ,结果会得到一个新的 uniqThetaSketch。
uniqThetaNot(uniqThetaSketch,uniqThetaSketch)
参数
  • uniqThetaSketch – uniqThetaSketch 对象。
示例
SELECT finalizeAggregation(uniqThetaNot(a, b)) AS a_not_b, finalizeAggregation(a) AS a_cardinality, finalizeAggregation(b) AS b_cardinality
FROM
(SELECT arrayReduce('uniqThetaState',[2,3,4]) AS a, arrayReduce('uniqThetaState',[1,2]) AS b );
┌─a_not_b─┬─a_cardinality─┬─b_cardinality─┐
│       2 │             3 │             2 │
└─────────┴───────────────┴───────────────┘
另请参阅
最后修改于 2026年6月10日