complemento rolling_percentile()
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer
Devuelve una estimación para el percentil especificado de la población ValueColumn en una ventana de tamaño BinsPerWindow gradual (deslizante) por BinSize.
El complemento se invoca con el evaluate
operador .
Sintaxis
Trolling_percentile(
| evaluate
ValueColumn,
Percentile,
IndexColumn,
BinSize,
BinsPerWindow [,
dim1,
dim2,
...])
Obtenga más información sobre las convenciones de sintaxis.
Parámetros
Nombre | Type | Obligatorio | Descripción |
---|---|---|---|
T | string |
✔️ | Expresión tabular de entrada. |
ValueColumn | string |
✔️ | Nombre de la columna utilizada para calcular los percentiles. |
Percentil | int, long o real | ✔️ | Escalar con el percentil que se va a calcular. |
IndexColumn | string |
✔️ | Nombre de la columna sobre la que se va a ejecutar la ventana gradual. |
BinSize | int, long, real, datetime o timespan | ✔️ | Escalar con el tamaño de los cubos que se van a aplicar a través de IndexColumn. |
BinsPerWindow | int |
✔️ | Número de cubos incluidos en cada ventana. |
dim1, dim2, ... | string |
Lista de las columnas de dimensiones por las que se va a segmentar. |
Devoluciones
Devuelve una tabla con una fila por cada bin (y combinación de dimensiones si se especifica) que tiene el percentil gradual de valores en la ventana que termina en el contenedor (ambos incluidos). El esquema de tabla de salida es:
IndexColumn | dim1 | ... | dim_n | rolling_BinsPerWindow_percentile_ValueColumn_Pct |
---|
Ejemplos
Valor medio de 3 días gradual por día
La consulta siguiente calcula un valor medio de 3 días en granularidad diaria. Cada fila de la salida representa el valor medio de los últimos 3 cubos (días), incluido el propio intervalo.
let T =
range idx from 0 to 24 * 10 - 1 step 1
| project Timestamp = datetime(2018-01-01) + 1h * idx, val=idx + 1
| extend EvenOrOdd = iff(val % 2 == 0, "Even", "Odd");
T
| evaluate rolling_percentile(val, 50, Timestamp, 1d, 3)
Salida
Marca de tiempo | rolling_3_percentile_val_50 |
---|---|
2018-01-01 00:00:00.0000000 | 12 |
2018-01-02 00:00:00.0000000 | 24 |
2018-01-03 00:00:00.0000000 | 36 |
2018-01-04 00:00:00.0000000 | 60 |
2018-01-05 00:00:00.0000000 | 84 |
2018-01-06 00:00:00.0000000 | 108 |
2018-01-07 00:00:00.0000000 | 132 |
2018-01-08 00:00:00.0000000 | 156 |
2018-01-09 00:00:00.0000000 | 180 |
2018-01-10 00:00:00.0000000 | 204 |
Valor medio de 3 días gradual por dimensión
El mismo ejemplo anterior, pero ahora también calcula la ventana gradual particionada para cada valor de la dimensión.
let T =
range idx from 0 to 24 * 10 - 1 step 1
| project Timestamp = datetime(2018-01-01) + 1h * idx, val=idx + 1
| extend EvenOrOdd = iff(val % 2 == 0, "Even", "Odd");
T
| evaluate rolling_percentile(val, 50, Timestamp, 1d, 3, EvenOrOdd)
Salida
Marca de tiempo | EvenOrOdd | rolling_3_percentile_val_50 |
---|---|---|
2018-01-01 00:00:00.0000000 | Even | 12 |
2018-01-02 00:00:00.0000000 | Even | 24 |
2018-01-03 00:00:00.0000000 | Even | 36 |
2018-01-04 00:00:00.0000000 | Even | 60 |
2018-01-05 00:00:00.0000000 | Even | 84 |
2018-01-06 00:00:00.0000000 | Even | 108 |
2018-01-07 00:00:00.0000000 | Even | 132 |
2018-01-08 00:00:00.0000000 | Even | 156 |
2018-01-09 00:00:00.0000000 | Even | 180 |
2018-01-10 00:00:00.0000000 | Even | 204 |
2018-01-01 00:00:00.0000000 | Extraño | 11 |
2018-01-02 00:00:00.0000000 | Extraño | 23 |
2018-01-03 00:00:00.0000000 | Extraño | 35 |
2018-01-04 00:00:00.0000000 | Extraño | 59 |
2018-01-05 00:00:00.0000000 | Extraño | 83 |
2018-01-06 00:00:00.0000000 | Extraño | 107 |
2018-01-07 00:00:00.0000000 | Extraño | 131 |
2018-01-08 00:00:00.0000000 | Extraño | 155 |
2018-01-09 00:00:00.0000000 | Extraño | 179 |
2018-01-10 00:00:00.0000000 | Extraño | 203 |