Saltar al contenido principal

quantileTimingWeighted

Introducido en: v1.1.0 Con la precisión especificada, calcula el cuantil de una secuencia de datos numéricos en función del peso de cada elemento de la secuencia. El resultado es determinista (no depende del orden de procesamiento de la consulta). La función está optimizada para trabajar con secuencias que describen distribuciones, como tiempos de carga de páginas web o tiempos de respuesta del backend. Al usar varias funciones quantile* con distintos niveles en una consulta, los estados internos no se combinan (es decir, la consulta se ejecuta con menos eficiencia de la que podría). En este caso, use la función quantiles. Precisión El cálculo es preciso si:
  • El número total de valores no supera 5670.
  • El número total de valores supera 5670, pero el tiempo de carga de la página es inferior a 1024 ms.
De lo contrario, el resultado del cálculo se redondea al múltiplo de 16 ms más cercano.
Para calcular cuantiles del tiempo de carga de páginas, esta función es más eficaz y precisa que quantile.
Si no se pasan valores a la función (al usar quantileTimingIf), se devuelve NaN. Esto permite distinguir estos casos de aquellos cuyo resultado es cero. Consulte la cláusula ORDER BY para ver notas sobre cómo ordenar valores NaN.
Sintaxis
quantileTimingWeighted(level)(expr, weight)
Alias: medianTimingWeighted Parámetros
  • level — Opcional. Nivel del cuantil. Número constante de coma flotante entre 0 y 1. Recomendamos usar un valor de level en el intervalo [0.01, 0.99]. Valor predeterminado: 0.5. Con level=0.5, la función calcula la mediana. Float*
Argumentos
  • expr — Expresión sobre los valores de una columna que devuelve un número de tipo Float*. Si se pasan valores negativos a la función, el comportamiento no está definido. Si el valor es mayor que 30,000 (un tiempo de carga de página superior a 30 segundos), se considera 30,000. Float*
  • weight — Columna con los pesos de los elementos de la secuencia. El peso es el número de ocurrencias del valor. UInt*
Valor devuelto Cuantil del nivel especificado. Float32 Ejemplos Cálculo del cuantil ponderado del tiempo
Query
CREATE TABLE t (response_time UInt32, weight UInt32) ENGINE = Memory;
INSERT INTO t VALUES (68, 1), (104, 2), (112, 3), (126, 2), (138, 1), (162, 1);

SELECT quantileTimingWeighted(response_time, weight) FROM t;
Response
┌─quantileTimingWeighted(response_time, weight)─┐
│                                           112 │
└───────────────────────────────────────────────┘
Última modificación el 10 de junio de 2026