メインコンテンツまでスキップ
メインコンテンツまでスキップ

uniqTheta関数

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

関連情報