Saltar al contenido principal

quantilesTimingWeighted

Introducido en: v1.1.0 Calcula varios cuantiles de una secuencia de datos numéricos en distintos niveles simultáneamente con una precisión determinada, teniendo en cuenta el peso de cada elemento de la secuencia. Esta función es equivalente a quantileTimingWeighted, pero permite calcular varios niveles de cuantiles en una sola pasada, lo que resulta más eficiente que llamar por separado a funciones de cuantiles individuales. 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 los tiempos de carga de páginas web o los tiempos de respuesta del backend. 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 la página, esta función es más eficaz y precisa que quantiles.
Sintaxis
quantilesTimingWeighted(level1, level2, ...)(expr, weight)
Parámetros
  • level — Niveles de los cuantiles. Uno o más números constantes de coma flotante entre 0 y 1. Recomendamos usar valores de level en el rango [0.01, 0.99]. 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 es indefinido. Si el valor es mayor que 30,000 (un tiempo de carga de una página de más de 30 segundos), se asume que es 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 Array de cuantiles de los niveles especificados, en el mismo orden en que se especificaron los niveles. Array(Float32) Ejemplos Cálculo de varios cuantiles ponderados de tiempos
Query
SELECT quantilesTimingWeighted(0.5, 0.99)(response_time, weight) FROM t;
Response
┌─quantilesTimingWeighted(0.5, 0.99)(response_time, weight)─┐
│ [112, 162]                                                │
└───────────────────────────────────────────────────────────┘
Véase también
Última modificación el 10 de junio de 2026