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
函数类似,只是它返回小于或等于当前值的值的百分比。