跳到主要内容
跳到主要内容

uniqTheta 函数

uniqTheta 函数用于两个 uniqThetaSketch 对象之间进行集合操作计算,例如 ∪ / ∩ / ×(并集/交集/差集),返回一个新的 uniqThetaSketch 对象,其中包含结果。

uniqThetaSketch 对象通过聚合函数 uniqTheta 构造,使用 -State。

UniqThetaSketch 是一种存储近似值集合的数据结构。 有关 RoaringBitmap 的更多信息,请参阅: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 对象进行交集计算(集合操作 ∩),结果是一个新的 uniqThetaSketch。

uniqThetaIntersect(uniqThetaSketch,uniqThetaSketch)

参数

  • uniqThetaSketch – uniqThetaSketch 对象。

示例

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 │
└─────────┴───────────────┴───────────────┘

另见