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

quantilesExactInclusive

Добавленный в: v20.1.0 Точно вычисляет несколько квантилей числовой последовательности на разных уровнях одновременно, используя инклюзивный метод. Эта функция эквивалентна quantileExactInclusive, но позволяет вычислять несколько уровней квантилей за один проход, что эффективнее, чем вызывать отдельные функции для каждого квантиля. Для вычисления квантилей эта функция использует инклюзивный метод, как описано в методе R-7. Это эквивалентно функции Excel PERCENTILE.INC. Чтобы получить точные значения, все переданные значения объединяются в массив, который затем частично сортируется. Сложность алгоритма сортировки составляет O(N·log(N)), где N = std::distance(first, last) — число сравнений. Синтаксис
quantilesExactInclusive(level1, level2, ...)(expr)
Параметры
  • level — Уровни квантилей. Константные числа с плавающей запятой от 0 до 1 включительно. Рекомендуется использовать значения level в диапазоне [0.01, 0.99]. Float*
Аргументы
  • expr — Выражение над значениями столбца, результатом которого являются числовые типы, Date или DateTime. (U)Int* или Float* или Decimal* или Date или DateTime
Возвращаемое значение Массив квантилей указанных уровней в том же порядке, в котором эти уровни были заданы. Array(Float64) Примеры Вычисление нескольких точных инклюзивных квантилей
Query
CREATE TABLE num AS numbers(1000);
SELECT quantilesExactInclusive(0.25, 0.5, 0.75, 0.9, 0.95, 0.99, 0.999)(number) FROM num;
Response
┌─quantilesExactInclusive(0.25, 0.5, 0.75, 0.9, 0.95, 0.99, 0.999)(number)─┐
│ [249.75,499.5,749.25,899.1,949.05,989.01,998.001]                        │
└──────────────────────────────────────────────────────────────────────────┘
Последнее изменение 10 июня 2026 г.