quantile
Добавленный в: v1.1.0
Вычисляет приблизительный quantile для числовой последовательности.
Эта функция использует резервуарное сэмплирование с резервуаром размером до 8192 и генератором случайных чисел для сэмплирования.
Результат недетерминирован.
Чтобы получить точную quantile, используйте функцию quantileExact.
При использовании нескольких функций quantile* с разными уровнями в одном запросе их внутренние состояния не объединяются (то есть запрос выполняется менее эффективно, чем мог бы).
В этом случае используйте функцию quantiles.
Обратите внимание, что для пустой числовой последовательности quantile возвращает NaN, а варианты quantile* — либо NaN, либо значение по умолчанию для типа последовательности, в зависимости от варианта.
Синтаксис
quantile(level)(expr)Псевдонимы: median
Параметры
level— Необязательный параметр. Уровень quantile. Константное число с плавающей точкой от 0 до 1. Рекомендуем использовать значениеlevelв диапазоне[0.01, 0.99]. Значение по умолчанию: 0.5. Приlevel=0.5функция вычисляет медиану.Float
Аргументы
expr— Выражение по значениям столбца, возвращающее числовые типы данных,Date,DateTimeилиDateTime64.(U)Int*илиInt128илиUInt128илиInt256илиUInt256илиFloat*илиDecimal*илиDateилиDateTimeилиDateTime64
Возвращаемое значение
Приближённый quantile указанного уровня. Для числовых аргументов возвращается Float64, а для аргументов Decimal, Date, DateTime и DateTime64 сохраняется исходный формат. Float64 или Decimal* или Date или DateTime или DateTime64
Примеры
Вычисление quantile
CREATE TABLE t (val UInt32) ENGINE = Memory;
INSERT INTO t VALUES (1), (1), (2), (3);
SELECT quantile(val) FROM t;┌─quantile(val)─┐
│ 1.5 │
└───────────────┘См. также