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 (含)。

Syntax (語法)

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

引數

OVER

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

PARTITION BY partition_expression

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

ORDER BY order_list

要計算累積分佈的表達式。表達式必須為數值資料類型,或可隱含地轉換為數值資料類型。如果省略 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 資料表的描述,請參閱窗口函數概述示例