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

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 функция вычисляет медиану.
  • expr — выражение над значениями столбца, результатом которого являются числовые типы данных, Date или DateTime.

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

  • Приближённый квантиль указанного уровня.

Тип:

  • Float64 для числового типа данных на входе.
  • Date, если входные значения имеют тип Date.
  • DateTime, если входные значения имеют тип DateTime.

Пример

Входная таблица:

┌─val─┐
│   1 │
│   1 │
│   2 │
│   3 │
└─────┘

Запрос:

SELECT quantile(val) FROM t

Результат:

┌─quantile(val)─┐
│           1.5 │
└───────────────┘

См. также