CUME_DIST 开窗函数 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

语法

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

参数

OVER

一个指定窗口分区的子句。OVER 子句不能包含窗口框架规范。

PARTITION BY partition_expression

可选。一个设置 OVER 子句中每个组的记录范围的表达式。

ORDER BY order_list

用于计算累积分布的表达式。该表达式必须具有数字数据类型或可隐式转换为 1。如果省略 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 表的说明,请参阅窗口函数示例的示例表