Функции 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 используют для вычисления разности (операция над множествами ×), результатом является новый 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 │
└─────────┴───────────────┴───────────────┘
См. также