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