quantilesExactHigh
Добавленный в: v20.8.0
Точно вычисляет сразу несколько квантилей числовой последовательности данных на разных уровнях. Для чётного количества элементов при уровне 0.5 возвращает большее из двух средних значений.
Эта функция эквивалентна quantileExactHigh, но позволяет вычислять несколько уровней квантилей за один проход, что эффективнее, чем вызывать отдельные функции квантилей.
Синтаксис
quantilesExactHigh(level1, level2, ...)(expr)Параметры
level— Уровни квантилей. Одно или несколько константных чисел с плавающей запятой от 0 до 1. Рекомендуется использовать значенияlevelв диапазоне[0.01, 0.99].Float*
Аргументы
expr— Выражение над значениями столбца, результатом которого являются числовые типы данных,Date,DateTimeилиDateTime64.(U)Int*илиFloat*илиDecimal*илиDateилиDateTimeилиDateTime64
Возвращаемое значение
Массив квантилей указанных уровней в том же порядке, в котором эти уровни были заданы. Для числовых типов данных формат вывода соответствует входному формату. Array((U)Int*) или Array(Float*) или Array(Decimal*) или Array(Date) или Array(DateTime) или Array(DateTime64)
Примеры
Вычисление нескольких точных высоких квантилей
SELECT quantilesExactHigh(0.25, 0.5, 0.75)(number) FROM numbers(10)┌─quantilesExactHigh(0.25, 0.5, 0.75)(number)─┐
│ [2,5,7] │
└─────────────────────────────────────────────┘