Sdílet prostřednictvím


modul plug-in rolling_percentile()

Platí pro: ✅Microsoft FabricAzure Data Explorer

Vrátí odhad zadaného percentilu základního souboru ValueColumn ve posuvné (posuvné) velikosti intervalu BinsPerWindow na binSize.

Modul plug-in se vyvolá pomocí operátoru evaluate .

Syntaxe

Trolling_percentile(| evaluate ValueColumn, Percentile, IndexColumn, BinSize BinSize, BinsPerWindow [ , dim1, dim2, ...])

Přečtěte si další informace o konvencích syntaxe.

Parametry

Název Type Požadováno Popis
T string ✔️ Vstupní tabulkový výraz.
HodnotaSloupce string ✔️ Název sloupce použitého k výpočtu percentilů.
Percentil int, long nebo real ✔️ Skalární s percentilem, který se má vypočítat.
IndexColumn string ✔️ Název sloupce, na kterém chcete spustit posuvné okno.
BinSize int, long, real, datetime nebo timespan ✔️ Skalární s velikostí intervalů, které se mají použít u indexColumn.
BinsPerWindow int ✔️ Počet intervalů zahrnutých v každém okně.
dim1, dim2, ... string Seznam sloupců dimenzí, podle kterých se má průřez provést.

Návraty

Vrátí tabulku s řádkem pro každou přihrádku (a kombinací dimenzí, pokud je zadána), která obsahuje klouzavý percentil hodnot v okně končícím intervalem (včetně). Schéma výstupní tabulky je:

IndexColumn dim1 ... dim_n rolling_BinsPerWindow_percentile_ValueColumn_Pct

Příklady

Průběžná 3denní mediánová hodnota za den

Další dotaz vypočítá 3denní mediánovou hodnotu v denní členitosti. Každý řádek ve výstupu představuje medián pro posledních 3 intervaly (dny), včetně samotného intervalu.

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)

Výstup

Časové razítko 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

Klouzavé 3denní mediánové hodnoty za den podle dimenze

Stejný příklad jako v předchozím příkladu, ale nyní také vypočítá posuvné okno rozdělené pro každou hodnotu dimenze.

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)

Výstup

Časové razítko EvenOrOdd rolling_3_percentile_val_50
2018-01-01 00:00:00.0000000 Dokonce 12
2018-01-02 00:00:00.0000000 Dokonce 24
2018-01-03 00:00:00.0000000 Dokonce 36
2018-01-04 00:00:00.0000000 Dokonce 60
2018-01-05 00:00:00.0000000 Dokonce 84
2018-01-06 00:00:00.0000000 Dokonce 108
2018-01-07 00:00:00.0000000 Dokonce 132
2018-01-08 00:00:00.0000000 Dokonce 156
2018-01-09 00:00:00.0000000 Dokonce 180
2018-01-10 00:00:00.0000000 Dokonce 204
2018-01-01 00:00:00.0000000 Divný 11
2018-01-02 00:00:00.0000000 Divný 23
2018-01-03 00:00:00.0000000 Divný 35
2018-01-04 00:00:00.0000000 Divný 59
2018-01-05 00:00:00.0000000 Divný 83
2018-01-06 00:00:00.0000000 Divný 107
2018-01-07 00:00:00.0000000 Divný 131
2018-01-08 00:00:00.0000000 Divný 155
2018-01-09 00:00:00.0000000 Divný 179
2018-01-10 00:00:00.0000000 Divný 203