rolling_percentile()-Plug-In
Gibt eine Schätzung für das angegebene Perzentil der ValueColumn-Auffüllung in einem rollierenden (gleitenden) BinsPerWindow-Größenfenster pro BinSize zurück.
Das Plug-In wird mit dem evaluate
Operator aufgerufen.
Syntax
T| evaluate
rolling_percentile(
ValueColumn,
Perzentil,
IndexColumn,
BinSize,
BinsPerWindow [,
dim1,
dim2,
...] )
Erfahren Sie mehr über Syntaxkonventionen.
Parameter
Name | Typ | Erforderlich | Beschreibung |
---|---|---|---|
T | string |
✔️ | Der tabellarische Eingabeausdruck. |
ValueColumn | string |
✔️ | Der Name der Spalte, die zum Berechnen der Quantile verwendet wird. |
Perzentil | int, long oder real | ✔️ | Skalar mit dem zu berechnenden Perzentil. |
IndexColumn | string |
✔️ | Der Name der Spalte, über die das rollierende Fenster ausgeführt werden soll. |
BinSize | int, long, real, datetime oder timespan | ✔️ | Skalar mit der Größe der Behälter, die auf die IndexColumn angewendet werden sollen. |
BinsPerWindow | int |
✔️ | Die Anzahl der in jedem Fenster enthaltenen Behälter. |
dim1, dim2, ... | string |
Eine Liste der Dimensionsspalten, nach der segmentiert werden soll. |
Gibt zurück
Gibt eine Tabelle mit einer Zeile pro Behälter (und einer Kombination von Dimensionen, falls angegeben) zurück, die das rollierende Perzentil der Werte im Fenster enthält, das auf dem Behälter endet (inklusive). Das Schema der Ausgabetabelle lautet:
IndexColumn | dim1 | ... | dim_n | rolling_BinsPerWindow_percentile_ValueColumn_Pct |
---|
Beispiele
Rollierender 3-Tage-Medianwert pro Tag
Die nächste Abfrage berechnet einen 3-Tage-Medianwert in der täglichen Granularität. Jede Zeile in der Ausgabe stellt den Medianwert für die letzten 3 Behälter (Tage) dar, einschließlich des Behälters selbst.
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)
Ausgabe
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 |
Rollierender 3-Tage-Medianwert pro Tag nach Dimension
Dasselbe Beispiel von oben berechnet jetzt aber auch das rollierende Fenster, das für jeden Wert der Dimension partitioniert wird.
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)
Ausgabe
Timestamp | EvenOrOdd | rolling_3_percentile_val_50 |
---|---|---|
2018-01-01 00:00:00.0000000 | Sogar | 12 |
2018-01-02 00:00:00.0000000 | Sogar | 24 |
2018-01-03 00:00:00.0000000 | Sogar | 36 |
2018-01-04 00:00:00.0000000 | Sogar | 60 |
2018-01-05 00:00:00.0000000 | Sogar | 84 |
2018-01-06 00:00:00.0000000 | Sogar | 108 |
2018-01-07 00:00:00.0000000 | Sogar | 132 |
2018-01-08 00:00:00.0000000 | Sogar | 156 |
2018-01-09 00:00:00.0000000 | Sogar | 180 |
2018-01-10 00:00:00.0000000 | Sogar | 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 |
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für