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
函式類似,只是它返回小於或等於當前值的值的百分比。