Megosztás a következőn keresztül:


rolling_percentile() beépülő modul

A ValueColumn-sokaság megadott percentilisére vonatkozó becslést ad vissza egy gördülő (csúszó) BinsPerWindow méretablakban BinSize értékenként.

A beépülő modul meghívása az evaluate operátorral történik.

Syntax

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

További információ a szintaxis konvenciókról.

Paraméterek

Név Típus Kötelező Leírás
T string ✔️ A bemeneti táblázatos kifejezés.
ValueColumn string ✔️ A percentilisek kiszámításához használt oszlop neve.
Percentilis int, long vagy real ✔️ Skaláris a kiszámítandó percentilissel.
IndexColumn string ✔️ Annak az oszlopnak a neve, amelyen a gördülő ablakot futtatni szeretné.
BinSize int, long, real, datetime vagy timespan ✔️ Skalár az IndexColumnra alkalmazandó tárolók méretével.
BinsPerWindow int ✔️ Az egyes ablakokban található rekeszek száma.
dim1, dim2, ... string A szeletelendő dimenzióoszlopok listája.

Válaszok

Egy olyan táblát ad vissza, amely minden raktárhelyen egy sort tartalmaz (és ha meg van adva a dimenziók kombinációja), amely az értékek gördülő percentilisével rendelkezik az ablakban, amely a raktárhelyre végződik (a befogadót is beleértve). A kimeneti tábla sémája a következő:

IndexColumn dim1 ... dim_n rolling_BinsPerWindow_percentile_ValueColumn_Pct

Példák

Gördülő 3 napos mediánérték naponta

A következő lekérdezés egy 3 napos mediánértéket számít ki a napi részletességben. A kimenet minden sora az utolsó 3 raktárhely (nap) mediánértékét jelöli, beleértve magát a raktárhelyet is.

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)

Kimenet

Időbélyeg 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

Gördülő 3 napos mediánérték naponta dimenzió szerint

Ugyanez a fenti példa, de most a dimenzió minden értékéhez particionált gördülő ablakot is kiszámítja.

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)

Kimenet

Időbélyeg EvenOrOdd rolling_3_percentile_val_50
2018-01-01 00:00:00.0000000 Még 12
2018-01-02 00:00:00.0000000 Még 24
2018-01-03 00:00:00.0000000 Még 36
2018-01-04 00:00:00.0000000 Még 60
2018-01-05 00:00:00.0000000 Még 84
2018-01-06 00:00:00.0000000 Még 108
2018-01-07 00:00:00.0000000 Még 132
2018-01-08 00:00:00.0000000 Még 156
2018-01-09 00:00:00.0000000 Még 180
2018-01-10 00:00:00.0000000 Még 204
2018-01-01 00:00:00.0000000 Furcsa 11
2018-01-02 00:00:00.0000000 Furcsa 23
2018-01-03 00:00:00.0000000 Furcsa 35
2018-01-04 00:00:00.0000000 Furcsa 59
2018-01-05 00:00:00.0000000 Furcsa 83
2018-01-06 00:00:00.0000000 Furcsa 107
2018-01-07 00:00:00.0000000 Furcsa 131
2018-01-08 00:00:00.0000000 Furcsa 155
2018-01-09 00:00:00.0000000 Furcsa 179
2018-01-10 00:00:00.0000000 Furcsa 203