Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantilesPrometheusHistogram

quantilesPrometheusHistogram

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

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

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

Синтаксис

quantilesPrometheusHistogram(level1, level2, ...)(bucket_upper_bound, cumulative_bucket_value)

Параметры

  • level — Уровни квантилей. Одно или несколько константных чисел с плавающей запятой от 0 до 1. Рекомендуется использовать значения level в диапазоне [0.01, 0.99]. Float64

Аргументы

  • bucket_upper_bound — Верхние границы бакетов гистограммы. Верхняя граница последнего бакета должна быть +Inf. Float*
  • cumulative_bucket_value — Кумулятивные значения бакетов гистограммы. Значения должны монотонно возрастать по мере увеличения верхней границы бакета. UInt* или Float*

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

Массив квантилей указанных уровней в том же порядке, в котором эти уровни были заданы. Тип результата с плавающей запятой соответствует типу bucket_upper_bound. Array(Float32) или Array(Float64)

Примеры

Пример использования

SELECT quantilesPrometheusHistogram(0.25, 0.5, 0.75)(bucket_upper_bound, cumulative_bucket_value)
FROM VALUES('bucket_upper_bound Float64, cumulative_bucket_value UInt64', (0, 6), (0.5, 11), (1, 14), (inf, 19));
┌─quantilesPrometheusHistogram(0.25, 0.5, 0.75)(bucket_upper_bound, cumulative_bucket_value)─┐
│ [0,0.35,1]                                                                                 │
└────────────────────────────────────────────────────────────────────────────────────────────┘
Navigation