uniqTheta
Добавленный в: v21.6.0
Вычисляет приблизительное количество различных значений аргумента, используя Theta Sketch Framework.
Подробности реализации
Эта функция вычисляет хеш для всех параметров агрегатной функции, а затем использует его в дальнейших вычислениях. Для приблизительной оценки количества различных значений аргумента используется алгоритм KMV.
Используется 64-битный скетч 4096(2^12). Размер состояния составляет около 41 КБ.
Относительная погрешность составляет 3.125% (при доверительной вероятности 95%), подробнее см. в таблице относительной погрешности.
Синтаксис
uniqTheta(x[, ...])Аргументы
x— функция принимает переменное число параметров.Tuple(T)илиArray(T)илиDateилиDateTimeилиStringили(U)Int*илиFloat*илиDecimal
Возвращаемое значение
Возвращает число типа 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 │
└─────────────────────────┘См. также