Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantilesInterpolatedWeighted

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 или DateTime64
  • weight — Столбец с весами элементов последовательности. Вес — это количество вхождений значения. 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]                                                   │
└───────────────────────────────────────────────────────────┘
Navigation