Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantilesExactWeightedInterpolated

quantilesExactWeightedInterpolated

Добавленный в: v24.10.0

Вычисляет несколько квантилей числовой последовательности данных с использованием линейной интерполяции одновременно на разных уровнях с учетом веса каждого элемента.

Эта функция эквивалентна quantileExactWeightedInterpolated, но позволяет вычислять несколько уровней квантилей за один проход, что эффективнее, чем вызывать отдельную функцию для каждого квантиля.

Синтаксис

quantilesExactWeightedInterpolated(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*

Возвращаемое значение

Массив квантилей указанных уровней в том же порядке, в котором эти уровни были заданы. Для числовых аргументов возвращается Float64, а для аргументов Decimal, Date, DateTime и DateTime64 сохраняется исходный формат. Array(Float64) или Array(Decimal*) или Array(Date) или Array(DateTime) или Array(DateTime64)

Примеры

Вычисление нескольких точных взвешенных интерполированных квантилей

SELECT quantilesExactWeightedInterpolated(0.25, 0.5, 0.75)(number, 1) FROM numbers(10)
┌─quantilesExactWeightedInterpolated(0.25, 0.5, 0.75)(number, 1)─┐
│ [2.25,4.5,6.75]                                                │
└────────────────────────────────────────────────────────────────┘
Navigation