uniqTheta関数は2つのuniqThetaSketchオブジェクトに対して集合操作計算(∪ / ∩ / ×(和集合/共通部分/差集合))を行い、結果を含む新しいuniqThetaSketchオブジェクトを返します。
uniqThetaSketchオブジェクトは、-Stateを使用する集約関数uniqThetaによって構築されます。
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 │
└─────────┴───────────────┴───────────────┘
関連情報