quantileExactWeighted
Introducido en: v1.1.0
Calcula exactamente el cuantil de una secuencia de datos numéricos, teniendo en cuenta el peso de cada elemento.
Para obtener el valor exacto, todos los valores proporcionados se combinan en un array, que después se ordena parcialmente.
Cada valor se cuenta con su peso, como si estuviera presente weight veces.
En el algoritmo se utiliza una tabla hash.
Por ello, si los valores proporcionados se repiten con frecuencia, la función consume menos RAM que quantileExact.
Puede usar esta función en lugar de quantileExact y especificar un peso de 1.
Al usar varias funciones quantile* con diferentes 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, use la función quantiles.
Sintaxis
quantileExactWeighted(level)(expr, weight)Alias: medianExactWeighted
Parámetros
level— Opcional. Nivel del cuantil. Número constante de coma flotante entre 0 y 1. Recomendamos usar un valor deleveldentro del intervalo[0.01, 0.99]. Valor predeterminado: 0.5. Conlevel=0.5, la función calcula la mediana.Float*
Argumentos
expr— Expresión sobre los valores de la columna que da como resultado tipos de datos numéricos,Date,DateTimeoDateTime64.(U)Int*oInt128oUInt128oInt256oUInt256oFloat*oDecimal*oDateoDateTimeoDateTime64weight— Columna con los pesos de los elementos de la secuencia. El peso es el número de ocurrencias de un valor.UInt*
Valor devuelto
Cuantil del nivel especificado. Para los tipos de datos numéricos, el formato de salida coincide con el formato de entrada. (U)Int* o Int128 o UInt128 o Int256 o UInt256 o Float* o Decimal* o Date o DateTime o DateTime64
Ejemplos
Cálculo del cuantil ponderado exacto
CREATE TABLE t (
n Int32,
val UInt32
) ENGINE = Memory;
-- Insert the sample data
INSERT INTO t VALUES
(0, 3),
(1, 2),
(2, 1),
(5, 4);
SELECT quantileExactWeighted(n, val) FROM t;┌─quantileExactWeighted(n, val)─┐
│ 1 │
└───────────────────────────────┘Véase también