Перейти к основному содержанию

Описание

Комбинатор If можно применять к функции quantilesTiming, чтобы вычислять квантили значений времени для строк, в которых условие истинно, с помощью агрегатной функции-комбинатора quantilesTimingIf.

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

В этом примере мы создадим таблицу, в которой хранятся времена отклика API для разных конечных точек, и используем quantilesTimingIf, чтобы вычислить квантили времени отклика для успешных запросов.
Query
CREATE TABLE api_responses(
    endpoint String,
    response_time_ms UInt32,
    is_successful UInt8
) ENGINE = MergeTree
ORDER BY ();

INSERT INTO api_responses VALUES
    ('orders', 82, 1),
    ('orders', 94, 1),
    ('orders', 98, 1),
    ('orders', 87, 1),
    ('orders', 103, 1),
    ('orders', 92, 1),
    ('orders', 89, 1),
    ('orders', 105, 1),
    ('products', 45, 1),
    ('products', 52, 1),
    ('products', 48, 1),
    ('products', 51, 1),
    ('products', 49, 1),
    ('products', 53, 1),
    ('products', 47, 1),
    ('products', 50, 1),
    ('users', 120, 0),
    ('users', 125, 0),
    ('users', 118, 0),
    ('users', 122, 0),
    ('users', 121, 0),
    ('users', 119, 0),
    ('users', 123, 0),
    ('users', 124, 0);

SELECT
    endpoint,
    quantilesTimingIf(0, 0.25, 0.5, 0.75, 0.95, 0.99, 1.0)(response_time_ms, is_successful = 1) as response_time_quantiles
FROM api_responses
GROUP BY endpoint;
Функция quantilesTimingIf вычисляет квантили только для успешных запросов (is_successful = 1). Возвращаемый массив содержит следующие квантили в указанном порядке:
  • 0 (минимум)
  • 0.25 (первый квартиль)
  • 0.5 (медиана)
  • 0.75 (третий квартиль)
  • 0.95 (95-й процентиль)
  • 0.99 (99-й процентиль)
  • 1.0 (максимум)
Response
   ┌─endpoint─┬─response_time_quantiles─────────────────────────────────────────────┐
1. │ orders   │ [82, 87, 92, 98, 103, 104, 105]                                     │
2. │ products │ [45, 47, 49, 51, 52, 52, 53]                                        │
3. │ users    │ [nan, nan, nan, nan, nan, nan, nan]                                 │
   └──────────┴─────────────────────────────────────────────────────────────────────┘

См. также

Последнее изменение 10 июня 2026 г.