quantilesDeterministic
Добавленный в: v1.1.0
Вычисляет сразу несколько приближённых квантилей для числовой последовательности данных на разных уровнях, используя детерминированную резервуарную выборку.
Эта функция эквивалентна quantileDeterministic, но позволяет вычислять несколько уровней квантилей за один проход, что эффективнее, чем вызывать отдельные функции квантилей.
Синтаксис
quantilesDeterministic(level1, level2, ...)(expr, determinator)Параметры
level— Уровни квантилей. Одно или несколько константных чисел с плавающей запятой в диапазоне от 0 до 1. Рекомендуется использовать значенияlevelиз диапазона[0.01, 0.99].Float*
Аргументы
expr— Выражение над значениями столбца, результат которого имеет числовой тип данных,DateилиDateTime.(U)Int*илиInt128илиUInt128илиInt256илиUInt256илиFloat*илиDateилиDateTimedeterminator— Число, хеш которого используется вместо генератора случайных чисел в алгоритме резервуарного сэмплирования, чтобы сделать результат сэмплирования детерминированным.UInt*
Возвращаемое значение
Массив приближённых квантилей указанных уровней в том же порядке, в котором эти уровни были заданы. Array(Float64) или Array(Date) или Array(DateTime)
Примеры
Вычисление нескольких детерминированных квантилей
SELECT quantilesDeterministic(0.25, 0.5, 0.75)(number, number) FROM numbers(10)┌─quantilesDeterministic(0.25, 0.5, 0.75)(number, number)─┐
│ [2.25,4.5,6.75] │
└─────────────────────────────────────────────────────────┘