complemento rolling_percentile()
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 |
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de