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

quantile

quantile

Добавлена в: v1.1

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

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

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

Обратите внимание, что для пустой числовой последовательности quantile вернёт NaN, но её варианты quantile* вернут либо NaN, либо значение по умолчанию для типа данных последовательности, в зависимости от варианта.

Синтаксис

quantile(level)(expr)

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

Параметры

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

Аргументы

  • expr — Выражение над значениями столбца, которое возвращает числовые типы данных, Date или DateTime. (U)Int* или Float* или Decimal* или Date или DateTime

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

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

Примеры

Вычисление квантиля

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

SELECT quantile(val) FROM t;
┌─quantile(val)─┐
│           1.5 │
└───────────────┘

См. также