plug-in rolling_percentile()
Retorna uma estimativa para o percentil especificado da população de ValueColumn em uma janela de tamanho BinsPerWindow rolando (deslizante) por BinSize.
O plug-in é invocado com o evaluate
operador .
Syntax
T| evaluate
rolling_percentile(
Valuecolumn,
Percentil,
IndexColumn,
BinSize,
BinsPerWindow [,
dim1,
dim2,
...] )
Saiba mais sobre as convenções de sintaxe.
Parâmetros
Nome | Tipo | Obrigatório | Descrição |
---|---|---|---|
T | string |
✔️ | A expressão tabular de entrada. |
Valuecolumn | string |
✔️ | O nome da coluna usada para calcular os percentis. |
Percentil | int, long ou real | ✔️ | Escalar com o percentil a ser calculado. |
IndexColumn | string |
✔️ | O nome da coluna sobre a qual executar a janela sem interrupção. |
BinSize | int, long, real, datetime ou timespan | ✔️ | Escalar com o tamanho das lixeiras a serem aplicadas sobre o IndexColumn. |
BinsPerWindow | int |
✔️ | O número de compartimentos incluídos em cada janela. |
dim1, dim2, ... | string |
Uma lista das colunas de dimensões a serem fatiadas. |
Retornos
Retorna uma tabela com uma linha por cada compartimento (e combinação de dimensões, se especificado) que tem o percentil sem interrupção de valores na janela que termina no compartimento (inclusive). O esquema da tabela de saída é:
IndexColumn | dim1 | ... | dim_n | rolling_BinsPerWindow_percentile_ValueColumn_Pct |
---|
Exemplos
Valor médio de 3 dias sem interrupção por dia
A próxima consulta calcula um valor mediano de 3 dias em granularidade diária. Cada linha na saída representa o valor mediano dos últimos três compartimentos (dias), incluindo o próprio compartimento.
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)
Saída
Timestamp | 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 médio sem interrupção de 3 dias por dia por dimensão
O mesmo exemplo acima, mas agora também calcula a janela sem interrupção particionada para cada valor da dimensão.
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)
Saída
Timestamp | EvenOrOdd | rolling_3_percentile_val_50 |
---|---|---|
2018-01-01 00:00:00.0000000 | Mesmo | 12 |
2018-01-02 00:00:00.0000000 | Mesmo | 24 |
2018-01-03 00:00:00.0000000 | Mesmo | 36 |
2018-01-04 00:00:00.0000000 | Mesmo | 60 |
2018-01-05 00:00:00.0000000 | Mesmo | 84 |
2018-01-06 00:00:00.0000000 | Mesmo | 108 |
2018-01-07 00:00:00.0000000 | Mesmo | 132 |
2018-01-08 00:00:00.0000000 | Mesmo | 156 |
2018-01-09 00:00:00.0000000 | Mesmo | 180 |
2018-01-10 00:00:00.0000000 | Mesmo | 204 |
2018-01-01 00:00:00.0000000 | Estranho | 11 |
2018-01-02 00:00:00.0000000 | Estranho | 23 |
2018-01-03 00:00:00.0000000 | Estranho | 35 |
2018-01-04 00:00:00.0000000 | Estranho | 59 |
2018-01-05 00:00:00.0000000 | Estranho | 83 |
2018-01-06 00:00:00.0000000 | Estranho | 107 |
2018-01-07 00:00:00.0000000 | Estranho | 131 |
2018-01-08 00:00:00.0000000 | Estranho | 155 |
2018-01-09 00:00:00.0000000 | Estranho | 179 |
2018-01-10 00:00:00.0000000 | Estranho | 203 |
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de