Saltar al contenido principal

Descripción

El combinador If puede aplicarse a la función quantilesTiming para calcular cuantiles de valores temporales para las filas en las que se cumple la condición, mediante la función de combinador de agregación quantilesTimingIf.

Ejemplo de uso

En este ejemplo, crearemos una tabla que almacena los tiempos de respuesta de la API para distintos endpoints, y usaremos quantilesTimingIf para calcular los cuantiles del tiempo de respuesta de las solicitudes exitosas.
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;
La función quantilesTimingIf calculará cuantiles solo para las solicitudes exitosas (is_successful = 1). El array devuelto contiene los siguientes cuantiles en este orden:
  • 0 (mínimo)
  • 0.25 (primer cuartil)
  • 0.5 (mediana)
  • 0.75 (tercer cuartil)
  • 0.95 (percentil 95)
  • 0.99 (percentil 99)
  • 1.0 (máximo)
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]                                 │
   └──────────┴─────────────────────────────────────────────────────────────────────┘

Véase también

Última modificación el 10 de junio de 2026