modul plug-in rolling_percentile()
Platí pro: ✅Microsoft Fabric✅Azure 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 |