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

quantileDeterministic

Добавленный в: v1.1.0 Вычисляет приблизительный квантиль числовой последовательности данных. Эта функция использует резервуарное сэмплирование с размером резервуара до 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 — Число, хеш которого используется вместо генератора случайных чисел в алгоритме резервуарного сэмплирования, чтобы сделать результат сэмплирования детерминированным. В качестве determinator можно использовать любое детерминированное положительное число, например идентификатор пользователя или события. Если одно и то же значение determinator встречается слишком часто, функция работает некорректно. (U)Int*
Возвращаемое значение Возвращает приблизительный квантиль указанного уровня. Float64 или Date или DateTime Примеры Вычисление детерминированного квантиля
Query
CREATE TABLE t (val UInt32) ENGINE = Memory;
INSERT INTO t VALUES (1), (1), (2), (3);

SELECT quantileDeterministic(val, 1) FROM t;
Response
┌─quantileDeterministic(val, 1)─┐
│                           1.5 │
└───────────────────────────────┘
См. также
Последнее изменение 10 июня 2026 г.