【SQL】Rank、Dense_Rank、Row_Number用法與範例

 教學

Rank() over (Partition by 欄位 Order by 欄位 )

DENSE_RANK() over (Partition by 欄位 Order by 欄位 )

ROW_NUMBER() over (Partition by 欄位 Order by 欄位 )

Partition:分隔。

Partition by區域→北中南東區各有1~若干名次產生,而不是四個區混合排名。



先做所有的排名當一個臨時table再用臨時table去找前三名。

Rank():當只取前三名時,若第2名重複,結果只會有第1、兩個第2名不會出現第3名。

DENSE_RANK():只取前三名,若遇到重複的名次,還是會完整取到第三名。如上圖結果。

ROW_NUMBER():流水號,就是純排序,也沒有重不重複問題,不管實際名次。

這個網誌中的熱門文章

【醫院資訊系統】筆記整理

【MIS】管理資訊系統Ch1+2

【Mongo】cmd命令