rolling_percentile()-Plug-In
Gilt für: ✅Microsoft Fabric✅Azure Data Explorer
Gibt eine Schätzung für das angegebene Quantil der ValueColumn-Grundpopulation in einem rollierenden (gleitenden) BinsPerWindow-Größenfenster pro BinSize zurück.
Das Plug-In wird mit dem evaluate
Operator aufgerufen.
Syntax
Trolling_percentile(
| evaluate
ValueColumn,
Percentile,
IndexColumn,
BinSize,
BinsPerWindow [,
dim1,
dim2,
...])
Erfahren Sie mehr über Syntaxkonventionen.
Parameter
Name | Type | Erforderlich | Beschreibung |
---|---|---|---|
T | string |
✔️ | Der Tabellarische Eingabeausdruck. |
ValueColumn | string |
✔️ | Der Name der Spalte, die zum Berechnen der Quantils verwendet wird. |
Perzentil | int, long oder real | ✔️ | Skalar mit dem zu berechnenden Quantil. |
IndexColumn | string |
✔️ | Der Name der Spalte, über der das rollierende Fenster ausgeführt werden soll. |
BinSize | int, long, real, datetime oder timespan | ✔️ | Skalar mit der Größe der Fächer, die über den IndexColumn angewendet werden sollen. |
BinsPerWindow | int |
✔️ | Die Anzahl der Container, die in jedem Fenster enthalten sind. |
dim1, dim2, ... | string |
Eine Liste der Dimensionsspalten, nach der segmentiert werden soll. |
Gibt zurück
Gibt eine Tabelle mit einer Zeile pro Container (und Kombination aus Dimensionen, falls angegeben) zurück, die das rollierende Quantil von Werten im Fenster enthält, das auf dem Bin (einschließlich) endet. Das Ausgabetabellenschema lautet:
IndexColumn | dim1 | ... | dim_n | rolling_BinsPerWindow_percentile_ValueColumn_Pct |
---|
Beispiele
Fortlaufender 3-Tage-Medianwert pro Tag
Die nächste Abfrage berechnet einen 3-tägigen Medianwert in der täglichen Granularität. Jede Zeile in der Ausgabe stellt den Medianwert für die letzten 3 Bins (Tage) einschließlich des Bins selbst dar.
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 |
Fortlaufender 3-Tage-Medianwert pro Tag nach Dimension
Dasselbe Beispiel von oben, aber jetzt berechnet auch das rollierende Fenster partitioniert für jeden Wert der Dimension.
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 | Ungerade | 11 |
2018-01-02 00:00:00.0000000 | Ungerade | 23 |
2018-01-03 00:00:00.0000000 | Ungerade | 35 |
2018-01-04 00:00:00.0000000 | Ungerade | 59 |
2018-01-05 00:00:00.0000000 | Ungerade | 83 |
2018-01-06 00:00:00.0000000 | Ungerade | 107 |
2018-01-07 00:00:00.0000000 | Ungerade | 131 |
2018-01-08 00:00:00.0000000 | Ungerade | 155 |
2018-01-09 00:00:00.0000000 | Ungerade | 179 |
2018-01-10 00:00:00.0000000 | Ungerade | 203 |