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