CUME_DIST 視窗函數 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

CUME_DIST 視窗函數

計算視窗或分割區內值的累積分佈。假定為遞增排序,使用此公式來決定累積分佈:

count of rows with values <= x / count of rows in the window or partition

其中 x 等於 ORDER BY 子句中指定資料欄目前資料列中的值。以下資料集示範此公式的使用:

Row# Value Calculation CUME_DIST 1 2500 (1)/(5) 0.2 2 2600 (2)/(5) 0.4 3 2800 (3)/(5) 0.6 4 2900 (4)/(5) 0.8 5 3100 (5)/(5) 1.0

傳回值範圍是 >0 至 1 (含)。

語法

CUME_DIST () OVER ( [ PARTITION BY partition_expression ] [ ORDER BY order_list ] )

引數

OVER

用於指定視窗分割的子句。OVER 子句不能包含窗框規格。

PARTITION BY partition_expression

選用。設定OVER子句中每個群組記錄範圍的表達式。

ORDER BY 訂單_清單

要計算累積分佈的表達式。表達式必須為數值資料類型,或可隱含地轉換為數值資料類型。如果省略 ORDER BY,則所有資料列的傳回值為 1。

如果 ORDER BY 未產生唯一的排序,則資料列的順序是非確定的。如需詳細資訊,請參閱範圍函數的資料唯一排序

傳回類型

FLOAT8

範例

以下範例計算每一個賣方的數量累積分佈:

select sellerid, qty, cume_dist() over (partition by sellerid order by qty) from winsales; sellerid qty cume_dist -------------------------------------------------- 1 10.00 0.33 1 10.64 0.67 1 30.37 1 3 10.04 0.25 3 15.15 0.5 3 20.75 0.75 3 30.55 1 2 20.09 0.5 2 20.12 1 4 10.12 0.5 4 40.23 1

如需WINSALES資料表的說明,請參閱 範圍函數範例的範例資料表