【Oracle】Oracle常用分析函式(排名)
阿新 • • 發佈:2022-05-19
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