Функции 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 │
└─────────┴───────────────┴───────────────┘
См. также