本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
PERCENTILE_DISC 範圍函數
PERCENTILE_DISC 是採用離散分佈模型的反向分佈函數。它採用百分位數值和排序規格,且會傳回給定集裡的一個元素。
針對給定的百分位數值 P,PERCENTILE_DISC 排序 ORDER BY 子句中的表達式值,且傳回的值具有大於或等於 P 的最小累積分佈值 (根據相同的排序規格)。
您只能在 OVER 子句中指定 PARTITION 子句。
PERCENTILE_DISC 是僅限於運算節點的函數。如果查詢未參考使用者定義的資料表或 AWS Clean Rooms 系統資料表,函式會傳回錯誤。
語法
PERCENTILE_DISC ( percentile ) WITHIN GROUP (ORDER BY expr) OVER ( [ PARTITION BY expr_list ] )
引數
- percentile
-
介於 0 和 1 之間的數值常數。計算時會忽略 Null。
- WITHIN GROUP ( ORDER BY expr)
-
指定要排序和計算百分位數的數值或日期/時間值。
- OVER
-
指定視窗分割。OVER 子句不能包含視窗排序或視窗框規格。
- PARTITION BY expr
-
選擇性引數,針對 OVER 子句中的每一個群組,設定記錄範圍。
傳回值
資料類型與 WITHIN GROUP 子句中的 ORDER BY 表達式相同。
範例
下列範例使用 WINSALES 資料表。如需 WINSALES 資料表的描述,請參閱範圍函數範例的範例資料表。
select sellerid, qty, percentile_disc(0.5) within group (order by qty) over() as median from winsales; sellerid | qty | median ----------+-----+-------- 1 | 10 | 20 3 | 10 | 20 1 | 10 | 20 4 | 10 | 20 3 | 15 | 20 2 | 20 | 20 2 | 20 | 20 3 | 20 | 20 1 | 30 | 20 3 | 30 | 20 4 | 40 | 20 (11 rows)
select sellerid, qty, percentile_disc(0.5) within group (order by qty) over(partition by sellerid) as median from winsales; sellerid | qty | median ----------+-----+-------- 2 | 20 | 20 2 | 20 | 20 4 | 10 | 10 4 | 40 | 10 1 | 10 | 10 1 | 10 | 10 1 | 30 | 10 3 | 10 | 15 3 | 15 | 15 3 | 20 | 15 3 | 30 | 15 (11 rows)