quantileExactExclusive
Introducido en: v20.1.0
Similar a quantileExact, esta función calcula el cuantil exacto de una secuencia de datos numéricos.
Esta función es equivalente a quantileExact, pero utiliza el método exclusivo para calcular cuantiles, tal como se describe en el método R-6.
Al usar esta función, el cuantil se calcula de forma que la fórmula de interpolación para un cuantil p dado tiene la forma: x[floor(n*p)] + (n*p - floor(n*p)) * (x[floor(n*p)+1] - x[floor(n*p)]), donde x es el array ordenado.
Para obtener el valor exacto, todos los valores proporcionados se combinan en un array, que luego se ordena por completo.
La complejidad del algoritmo de ordenación es O(N·log(N)), donde N = std::distance(first, last) comparaciones.
Al usar varias funciones quantile* con distintos niveles en una consulta, los estados internos no se combinan (es decir, la consulta funciona con menos eficiencia de la que podría).
En este caso, utilice la función quantiles.
Sintaxis
quantileExactExclusive(level)(expr)Parámetros
level— Nivel del cuantil. Número constante de coma flotante entre 0 y 1 (sin incluirlos). Recomendamos usar un valor delevelen el intervalo(0.01, 0.99).Float*
Argumentos
expr— Expresión sobre los valores de la columna cuyo resultado son tipos de datos numéricos,DateoDateTime.(U)Int*oFloat*oDateoDateTime
Valor devuelto
Devuelve el cuantil del nivel especificado. Float64
Ejemplos
Cálculo del cuantil exacto exclusivo
SELECT quantileExactExclusive(0.25)(number) FROM numbers(5);┌─quantileExactExclusive(0.25)(number)─┐
│ 0.5 │
└──────────────────────────────────────┘Cálculo de varios niveles de cuantil
SELECT quantileExactExclusive(0.1)(number), quantileExactExclusive(0.9)(number) FROM numbers(10);┌─quantileExactExclusive(0.1)(number)─┬─quantileExactExclusive(0.9)(number)─┐
│ 0.10000000000000009 │ 8.9 │
└─────────────────────────────────────┴─────────────────────────────────────┘