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

quantilesExactExclusive

Добавленный в: v20.1.0 Точно вычисляет несколько квантилей последовательности числовых данных одновременно на нескольких уровнях с использованием исключающего метода. Эта функция эквивалентна quantileExactExclusive, но позволяет вычислять несколько уровней квантилей за один проход, что эффективнее, чем вызывать отдельные функции для вычисления квантилей. Эта функция использует исключающий метод вычисления квантилей, как описано в методе R-6. Она эквивалентна функции Excel PERCENTILE.EXC. Чтобы получить точные значения, все переданные значения объединяются в массив, который затем частично сортируется. Сложность алгоритма сортировки составляет O(N·log(N)), где N = std::distance(first, last) — число сравнений. Синтаксис
quantilesExactExclusive(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 quantilesExactExclusive(0.25, 0.5, 0.75, 0.9, 0.95, 0.99, 0.999)(number) FROM num;
Response
┌─quantilesExactExclusive(0.25, 0.5, 0.75, 0.9, 0.95, 0.99, 0.999)(number)─┐
│ [249.25,499.5,749.75,899.9,949.95,989.99,998.999]                        │
└──────────────────────────────────────────────────────────────────────────┘
Последнее изменение 10 июня 2026 г.