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

uniqTheta

uniqTheta

Добавлено в версии v21.6

Вычисляет приблизительное количество различных значений аргумента, используя Theta Sketch Framework.

Подробности реализации

Эта функция вычисляет хеш для всех аргументов в агрегате, затем использует его в вычислениях. Для аппроксимации числа различных значений аргумента используется алгоритм KMV.

Используются 4096 (2^12) 64-разрядных скетчей (sketch). Размер состояния составляет примерно 41 KB.

Относительная ошибка составляет 3,125% (при 95%-м уровне доверия), подробности см. в таблице относительных ошибок.

Синтаксис

uniqTheta(x[, ...])

Аргументы

Возвращаемое значение

Возвращает число типа UInt64, которое представляет собой приблизительную оценку количества различных значений аргументов. UInt64

Примеры

Базовое использование

CREATE TABLE example_theta
(
    id UInt32,
    category String
)
ENGINE = Memory;

INSERT INTO example_theta VALUES
(1, 'A'), (2, 'B'), (3, 'A'), (4, 'C'), (5, 'B'), (6, 'A');

SELECT uniqTheta(category) as theta_unique_categories
FROM example_theta;
┌─theta_unique_categories─┐
│                       3 │
└─────────────────────────┘

См. также