plug-in rolling_percentile()

Restituisce una stima per il percentile specificato della popolazione ValueColumn in una finestra di dimensioni di BinsPerWindow in sequenza per BinSize.

Il plug-in viene richiamato con l'operatore evaluate .

Sintassi

T| evaluaterolling_percentile(ValueColumn,Percentile,IndexColumn,BinSize,BinsPerWindow [,dim1,dim2, ...] )

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Tipo Obbligatoria Descrizione
T string ✔️ Espressione tabulare di input.
ValueColumn string ✔️ Nome della colonna usata per calcolare i percentile.
Percentile int, long o reale ✔️ Scalare con percentile da calcolare.
IndexColumn string ✔️ Nome della colonna su cui eseguire la finestra di sequenza.
BinSize int, long, real, datetime o timepan ✔️ Scalare con dimensioni dei bin da applicare su IndexColumn.
BinsPerWindow int ✔️ Numero di contenitori inclusi in ogni finestra.
dim1, dim2, ... string Elenco delle colonne delle dimensioni da eseguire per sezione.

Restituisce

Restituisce una tabella con una riga per ogni bin (e combinazione di dimensioni se specificato) che ha il percentile in sequenza dei valori nella finestra che terminano nel bin (inclusivo). Lo schema della tabella di output è:

IndexColumn dim1 ... dim_n rolling_BinsPerWindow_percentile_ValueColumn_Pct

Esempio

Valore mediano di 3 giorni al giorno

La query successiva calcola un valore mediano di 3 giorni nella granularità giornaliera. Ogni riga nell'output rappresenta il valore mediano per gli ultimi 3 bin (giorni), incluso il bin stesso.

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)

Output

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

Valore mediano in sequenza 3 giorni al giorno per dimensione

Stesso esempio da sopra, ma ora calcola anche la finestra in sequenza partizionata per ogni valore della dimensione.

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)

Output

Timestamp EvenOrOdd rolling_3_percentile_val_50
2018-01-01 00:00:00.0000000 Anche 12
2018-01-02 00:00:00.0000000 Anche 24
2018-01-03 00:00:00.0000000 Anche 36
2018-01-04 00:00:00.0000000 Anche 60
2018-01-05 00:00:00.0000000 Anche 84
2018-01-06 00:00:00.0000000 Anche 108
2018-01-07 00:00:00.0000000 Anche 132
2018-01-08 00:00:00.0000000 Anche 156
2018-01-09 00:00:00.0000000 Anche 180
2018-01-10 00:00:00.0000000 Anche 204
2018-01-01 00:00:00.0000000 Strano 11
2018-01-02 00:00:00.0000000 Strano 23
2018-01-03 00:00:00.0000000 Strano 35
2018-01-04 00:00:00.0000000 Strano 59
2018-01-05 00:00:00.0000000 Strano 83
2018-01-06 00:00:00.0000000 Strano 107
2018-01-07 00:00:00.0000000 Strano 131
2018-01-08 00:00:00.0000000 Strano 155
2018-01-09 00:00:00.0000000 Strano 179
2018-01-10 00:00:00.0000000 Strano 203