共用方式為


rolling_percentile() 外掛程式

適用於: ✅Microsoft網狀架構Azure 數據總管

針對每個 BinSize 的滾動 (滑動) BinsPerWindow 大小視窗,傳回 ValueColumn 母體擴展之指定百分位數的估計值。

外掛程式是使用運算子叫 evaluate 用的。

語法

T | evaluaterolling_percentile(ValueColumn Percentile, IndexColumn,, BinSize, BinsPerWindow [, dim1, dim2, ...])

深入瞭解 語法慣例

參數

姓名 類型​​ 必要 描述
T string ✔️ 輸入表格式表達式。
ValueColumn string ✔️ 用來計算百分位數的數據行名稱。
百分比 int、long 或 real ✔️ 要計算百分位數的純量。
IndexColumn string ✔️ 要在其中執行滾動視窗的數據行名稱。
BinSize int、long、real、datetime 或 timespan ✔️ 要套用至 IndexColumn 之間隔大小的純量。
BinsPerWindow int ✔️ 每個視窗中所包含的量化數目。
dim1dim2, ... string 要分割的維度數據列清單。

傳回

傳回每一個量化數據列的數據表(如果指定時維度的組合),該數據表在結束於 bin 的視窗中具有滾動百分位數的值(包含)。 輸出資料表架構為:

IndexColumn dim1 ... dim_n rolling_BinsPerWindow_percentile_ValueColumn_Pct

範例

每天滾動 3 天中位數

下一個查詢會計算每日數據粒度的 3 天中位數。 輸出中的每個數據列都代表過去 3 個 bin(天)的中位數值,包括 bin 本身。

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)

輸出

時間戳記 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

依維度滾動每天 3 天中位數

上述相同的範例,但現在也會計算針對維度每個值分割的滾動視窗。

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)

輸出

時間戳記 EvenOrOdd 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
2018-01-01 00:00:00.0000000 奇怪 11
2018-01-02 00:00:00.0000000 奇怪 23
2018-01-03 00:00:00.0000000 奇怪 35
2018-01-04 00:00:00.0000000 奇怪 59
2018-01-05 00:00:00.0000000 奇怪 83
2018-01-06 00:00:00.0000000 奇怪 107
2018-01-07 00:00:00.0000000 奇怪 131
2018-01-08 00:00:00.0000000 奇怪 155
2018-01-09 00:00:00.0000000 奇怪 179
2018-01-10 00:00:00.0000000 奇怪 203