CUME_DIST 函数是一个 OLAP 分等级函数,计算累计分布作为每一行的百分比等级。该等级表示为取值范围从 0 至 1 的实际值小数。
CUME_DIST 函数计算等级低于或等于当前的行,包括当前行的行的数目,除以该分区中行的总数。越接近 1 的值表示越高的等级,而越接近 0 的值表示越低的等级。
此函数不用参数,但必须指定空的圆括号。如果还指定可选的 window PARTITION 子句,则在每一分区定义的行的子集之内计算等级。如果在该分区中有单个行,则它的 CUME_DIST 值为 1。
下列查询展示每个销售人员的销售量的累计分布。
SELECT emp_num, sales, CUME_DIST() OVER (ORDER BY sales) AS cume_dist FROM sales; emp_num sales cume_dist 101 2,000 0.166666667 102 2,400 0.500000000 103 2,400 0.500000000 104 2,500 0.833333333 105 2,500 0.833333333 106 2,650 1.000000000