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

quantileDeterministic

quantileDeterministic

Введена в: v1.1

Вычисляет приближенный квантиль числовой последовательности данных.

Эта функция применяет выборку из резервуара с размером резервуара до 8192 и детерминированным алгоритмом выборки. Результат детерминирован. Чтобы получить точный квантиль, используйте функцию quantileExact.

При использовании нескольких функций quantile* с разными уровнями в запросе их внутренние состояния не объединяются (то есть запрос работает менее эффективно, чем мог бы). В этом случае используйте функцию quantiles.

Синтаксис

quantileDeterministic(level)(expr, determinator)

Псевдонимы: medianDeterministic

Параметры

  • level — Необязательный параметр. Уровень квантиля. Константное число с плавающей запятой от 0 до 1. Рекомендуем использовать значение level в диапазоне [0.01, 0.99]. Значение по умолчанию: 0.5. При level=0.5 функция вычисляет медиану. Float*

Аргументы

  • expr — Выражение над значениями столбца, результатом которого является числовой тип данных, Date или DateTime. (U)Int* или Float* или Decimal* или Date или DateTime
  • determinator — Число, хэш которого используется вместо генератора случайных чисел в алгоритме резервуарной выборки, чтобы сделать результат выборки детерминированным. В качестве детерминатора можно использовать любое детерминированное положительное число, например id пользователя или id события. Если одно и то же значение детерминатора встречается слишком часто, функция работает некорректно. (U)Int*

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

Возвращает приближённый квантиль указанного уровня. Float64 или Date или DateTime

Примеры

Вычисление детерминированного квантиля

CREATE TABLE t (val UInt32) ENGINE = Memory;
INSERT INTO t VALUES (1), (1), (2), (3);

SELECT quantileDeterministic(val, 1) FROM t;
┌─quantileDeterministic(val, 1)─┐
│                           1.5 │
└───────────────────────────────┘

См. также