1. 程式人生 > 其它 >【Oracle】Oracle常用分析函式(排名)

【Oracle】Oracle常用分析函式(排名)

Oracle常用分析函式(排名)

一般來說,遇到需要對資料進行排序的時候,可以使用分析函式,一般常用的有三個,rank,dense_rank,row_number

--Oracle常用分析函式(排名)
rank() over(order by score desc)   --按照大小進行排名,純粹的排名,相同大小名次一樣,會有名次的跳躍,即除了相同的,其餘排名順序與行號相同,第一名有十個,那第十一個就是第十一名
dense_rank() over(order by score desc)  --按照大小進行排名,相同大小名次一樣,但是不會進行名次的跳躍,即第一名玩了就是第二名,就算第一名有十個,那第十一個也是第二名
row_number() over(order by score desc)  --按照大小進行排名,相同大小名次不一樣,就是按照行號走下去

結果可以參考下面的情況
score rank dense_rank row_number
6 1 1 1
6 1 1 2
2 3 2 3
1 4 3 4
1 4 3 5

需要對重複的資料進行排名且名次不跳躍的話,就使用dense_rank