Перейти к основному содержанию
Перейти к основному содержанию

Функции 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 │
└─────────┴───────────────┴───────────────┘

См. также