PERCENT RANK 和 CUME DIST

PERCENT_RANK 函数计算行相对于行集的排名。百分比基于组中具有比当前行更低值的行数。

结果集中的第一个值始终为百分比等级为零。集合中排名最高或最后一个值的值始终为 1。

CUME_DIST 函数通过确定小于或等于该值的值的百分比来计算一组值中指定值的相对位置。这称为累积分布。

SELECT BusinessEntityID, JobTitle, SickLeaveHours,
PERCENT_RANK() OVER(PARTITION BY JobTitle ORDER BY SickLeaveHours DESC)
       AS "Percent Rank",
CUME_DIST() OVER(PARTITION BY JobTitle ORDER BY SickLeaveHours DESC)
       AS "Cumulative Distribution"
FROM Employee;

在此示例中,你使用 ORDER 子句根据员工的职称对 SELECT 语句检索的行进行分区 - 或分组,每个组中的结果根据员工使用的病假小时数进行排序。

BusinessEntityID 职称 SickLeaveHours 百分比排名 累积分布
267 应用专家 57 0 0.25
268 应用专家 56 0.333333333333333 0.75
269 应用专家 56 0.333333333333333 0.75
272 应用专家 55 1 1
262 辅助 Cheif 财务官 48 0 1
239 福利专家 45 0 1
252 买方 50 0 0.111111111111111
251 买方 49 0.125 0.333333333333333
256 买方 49 0.125 0.333333333333333
253 买方 48 0.375 0.555555555555555
254 买方 48 0.375 0.555555555555555

PERCENT_RANK 函数对每个组中的条目进行排名。对于每个条目,它返回同一组中具有较低值的条目的百分比。

CUME_DIST 函数类似,只是它返回小于或等于当前值的值的百分比。