uniqTheta 関数は 2 つの uniqThetaSketch オブジェクトに対して、∪ / ∩ / ×(和集合 / 共通部分 / 補集合)などの集合演算を行い、その結果を含む新しい uniqThetaSketch オブジェクトを返します。
uniqThetaSketch オブジェクトは、集約関数 uniqTheta の -State バリアントによって構築されます。
UniqThetaSketch は、集合の要素数を近似的に表現するためのデータ構造です。
RoaringBitmap の詳細については、Theta Sketch Framework を参照してください。
uniqThetaUnion
2 つの 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
2 つの 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
2 つの 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 │
└─────────┴───────────────┴───────────────┘
関連項目