percentile(), percentiles() (función de agregación)
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
La percentile()
función calcula una estimación para el percentil de rango más cercano especificado de la población definida por expr.
La precisión depende de la densidad de población en la región del percentil.
percentiles()
funciona de forma similar a percentile()
. Sin embargo, percentiles()
puede calcular varios valores de percentil a la vez, lo que es más eficaz que calcular cada valor de percentil por separado.
Para calcular percentiles ponderados, consulte percentilesw()..
Nota:
Esta función se usa junto con el operador summarize.
Sintaxis
percentile(
percentil expr,
)
percentiles(
percentiles expr,
)
Obtenga más información sobre las convenciones de sintaxis.
Parámetros
Nombre | Type | Obligatorio | Descripción |
---|---|---|---|
expr | string |
✔️ | Expresión que se va a usar para el cálculo de agregaciones. |
percentil | int o long | ✔️ | Constante que especifica el percentil. |
Percentiles | int o long | ✔️ | Percentiles separados por comas o más. |
Devoluciones
Devuelve una tabla con las estimaciones de expr de los percentiles especificados en el grupo, cada uno de ellos en una columna independiente.
Nota:
Para devolver los percentiles en una sola columna, vea Devolver percentiles como una matriz.
Ejemplos
Cálculo del percentil único
En el ejemplo siguiente se muestra el valor de DamageProperty
ser mayor que el 95 % del conjunto de muestras y menor que el 5 % del conjunto de muestras.
StormEvents | summarize percentile(DamageProperty, 95) by State
Salida
La tabla de resultados que se muestra incluye solo las primeras 10 filas.
Valor | percentile_DamageProperty_95 |
---|---|
ATLÁNTICO SUR | 0 |
FLORIDA | 40000 |
GEORGIA | 143333 |
MISISIPÍ | 80000 |
AMERICAN SAMOA | 250000 |
KENTUCKY | 35000 |
OHIO | 150 000 |
KANSAS | 51392 |
MÍCHIGAN | 49167 |
ALABAMA | 50000 |
Cálculo de varios percentiles
En el ejemplo siguiente se muestra el valor de DamageProperty
calculado simultáneamente con 5, 50 (mediana) y 95.
StormEvents | summarize percentiles(DamageProperty, 5, 50, 95) by State
Salida
La tabla de resultados que se muestra incluye solo las primeras 10 filas.
Valor | percentile_DamageProperty_5 | percentile_DamageProperty_50 | percentile_DamageProperty_95 |
---|---|---|---|
ATLÁNTICO SUR | 0 | 0 | 0 |
FLORIDA | 0 | 0 | 40000 |
GEORGIA | 0 | 0 | 143333 |
MISISIPÍ | 0 | 0 | 80000 |
AMERICAN SAMOA | 0 | 0 | 250000 |
KENTUCKY | 0 | 0 | 35000 |
OHIO | 0 | 2000 | 150 000 |
KANSAS | 0 | 0 | 51392 |
MÍCHIGAN | 0 | 0 | 49167 |
ALABAMA | 0 | 0 | 50000 |
... | ... |
Devolver percentiles como una matriz
En lugar de devolver los valores en columnas individuales, use la percentiles_array()
función para devolver los percentiles en una sola columna del tipo de matriz dinámica.
Sintaxis
percentiles_array(
percentiles expr,
)
Parámetros
Nombre | Type | Obligatorio | Descripción |
---|---|---|---|
expr | string |
✔️ | Expresión que se va a usar para el cálculo de agregaciones. |
Percentiles | int, long o dynamic | ✔️ | Percentiles separados por comas o una matriz dinámica de percentiles. Cada percentil puede ser un valor entero o largo. |
Devoluciones
Devuelve una estimación para expr de los percentiles especificados en el grupo como una sola columna de tipo de matriz dinámica.
Ejemplos
Percentiles separados por comas
Se pueden obtener varios percentiles como una matriz en una sola columna dinámica, en lugar de en varias columnas como con percentiles().
TransformedSensorsData
| summarize percentiles_array(Value, 5, 25, 50, 75, 95), avg(Value) by SensorName
Salida
La tabla de resultados muestra solo las primeras 10 filas.
SensorName | percentiles_Value | avg_Value |
---|---|---|
sensor-82 | ["0.048141473520867069","0.24407515500271132","0.48974511106780577","0.74160998970950343","0.94587903204190071"] | 0.493950914 |
sensor-130 | ["0.049200214398937764","0.25735850440187535","0.51206374010048239","0.74182335059053839","0.95210342463616771"] | 0.505111463 |
sensor-56 | ["0.04857779335488676","0.24709868149337144","0.49668762923789589","0.74458470404241883","0.94889104840865857"] | 0.497955018 |
sensor-24 | ["0.051507199150534679","0.24803904945640423","0.50397070213183581","0.75653888126010793","0.9518782718727431"] | 0.501084379 |
sensor-47 | ["0.045991246974755672","0.24644331118208851","0.48089197707088743","0.74475142784472248","0.9518322864959039"] | 0.49386228 |
sensor-135 | ["0.05132897529660399","0.24204987641954018","0.48470113942206461","0.74275730068433621","0.94784079559229406"] | 0.494817619 |
sensor-74 | ["0.048914714739047828","0.25160926036445724","0.49832498850160978","0.75257887767110776","0.94932261924236094"] | 0.501627252 |
sensor-173 | ["0.048333149363009836","0.26084250046756496","0.51288012531934613","0.74964772791583412","0.95156058795294"] | 0.505401226 |
sensor-28 | ["0.048511161184567046","0.2547387968731824","0.50101318228599656","0.75693845702682039","0.95243122486483989"] | 0.502066244 |
sensor-34 | ["0.049980293859462954","0.25094722564949412","0.50914023067384762","0.75571549713447961","0.95176564809278674"] | 0.504309494 |
... | ... | ... |
Matriz dinámica de percentiles
Los percentiles para percentiles_array
se pueden especificar en una matriz dinámica de números enteros o de punto flotante. La matriz debe ser constante, pero no tiene que ser literal.
TransformedSensorsData
| summarize percentiles_array(Value, dynamic([5, 25, 50, 75, 95])), avg(Value) by SensorName
Salida
La tabla de resultados muestra solo las primeras 10 filas.
SensorName | percentiles_Value | avg_Value |
---|---|---|
sensor-82 | ["0.048141473520867069","0.24407515500271132","0.48974511106780577","0.74160998970950343","0.94587903204190071"] | 0.493950914 |
sensor-130 | ["0.049200214398937764","0.25735850440187535","0.51206374010048239","0.74182335059053839","0.95210342463616771"] | 0.505111463 |
sensor-56 | ["0.04857779335488676","0.24709868149337144","0.49668762923789589","0.74458470404241883","0.94889104840865857"] | 0.497955018 |
sensor-24 | ["0.051507199150534679","0.24803904945640423","0.50397070213183581","0.75653888126010793","0.9518782718727431"] | 0.501084379 |
sensor-47 | ["0.045991246974755672","0.24644331118208851","0.48089197707088743","0.74475142784472248","0.9518322864959039"] | 0.49386228 |
sensor-135 | ["0.05132897529660399","0.24204987641954018","0.48470113942206461","0.74275730068433621","0.94784079559229406"] | 0.494817619 |
sensor-74 | ["0.048914714739047828","0.25160926036445724","0.49832498850160978","0.75257887767110776","0.94932261924236094"] | 0.501627252 |
sensor-173 | ["0.048333149363009836","0.26084250046756496","0.51288012531934613","0.74964772791583412","0.95156058795294"] | 0.505401226 |
sensor-28 | ["0.048511161184567046","0.2547387968731824","0.50101318228599656","0.75693845702682039","0.95243122486483989"] | 0.502066244 |
sensor-34 | ["0.049980293859462954","0.25094722564949412","0.50914023067384762","0.75571549713447961","0.95176564809278674"] | 0.504309494 |
... | ... | ... |
Percentil de clasificación más cercana
El percentil P (0 <P<= 100) de una lista de valores ordenados, ordenados en orden ascendente, es el valor más pequeño de la lista. El porcentaje P de los datos es menor o igual que el valor de percentil P (en el artículo de Wikipedia sobre percentiles).
Defina percentiles 0 para ser el miembro más pequeño de la población.
Nota:
Dada la naturaleza aproximada del cálculo, es posible que el valor devuelto real no sea miembro de la población. La definición de clasificación más cercana significa que P=50 no se ajusta a la definición interpolativa de la mediana. Al evaluar la importancia de esta discrepancia para la aplicación específica, se debe tener en cuenta el tamaño de la población y un error de estimación.
Error de estimación en percentiles
El agregado de percentiles proporciona un valor aproximado mediante T-Digest.
Nota:
- Los límites en el error de estimación varían con el valor del percentil solicitado. La mejor precisión es en ambos extremos de la escala [0..100]. Los percentiles 0 y 100 son los valores mínimos y máximos exactos de la distribución. La precisión se reduce gradualmente hacia el centro de la escala. Es peor en la mediana y se limita al 1 %.
- Los límites de los errores se observan en el rango, no en el valor. Supongamos que percentil(X, 50) devolvió un valor de Xm. La estimación garantiza que al menos el 49 % y al menos el 51 % de los valores de X son menores o iguales que Xm. No hay ningún límite teórico en la diferencia entre Xm y el valor medio real de X.
- La estimación a veces puede dar lugar a un valor preciso, pero no hay condiciones confiables para definir cuándo será el caso.