Freigeben über


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