Condividi tramite


plug-in rolling_percentile()

Si applica a: ✅Microsoft FabricAzure Esplora dati

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

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

Sintassi

T rolling_percentile(| evaluateValueColumn, Percentile, IndexColumn, BinSize, BinsPerWindow [, dim1, dim2, ...])

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Digita Obbligatorio Descrizione
T string ✔️ Espressione tabulare di input.
ValueColumn string ✔️ Nome della colonna utilizzata per calcolare i percentili.
Percentile int, long o real ✔️ Scalare con il percentile da calcolare.
IndexColumn string ✔️ Nome della colonna su cui eseguire la finestra in sequenza.
BinSize int, long, real, datetime o timespan ✔️ 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 in base a cui eseguire la sezione.

Valori restituiti

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

IndexColumn dim1 ... dim_n rolling_BinsPerWindow_percentile_ValueColumn_Pct

Esempi

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 di 3 giorni al giorno per dimensione

Lo stesso esempio riportato sopra, ma ora calcola anche la finestra mobile 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 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 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