rank() over,dense_rank() over,row_number() over的区别
Oracle
rank() over,dense_rank() over,row_number() over的区别
--rank() over课程编号为4的课程成绩相同的人排名相同,排名不连续 1 2 2 4
select cno, rank() over(partitionby cno orderby grade desc)
from t_score
whereinstr('2,4', cno) > 0
![rank() over,dense_rank() over,row_number() over的区别 - JAVA学习博客 - MyJAVA](http://img0.ph.126.net/zgobmDvgEaO1ZLFNjBaqEQ==/6597151130516529690.jpg)
--dense_rank() over课程编号为4的课程成绩相同的人排名相同,排名不连续 1 2 2 3
select cno 课程编号, dense_rank() over(partitionby cno orderby grade desc) 排名
from t_score
whereinstr('2,4', cno) > 0
-- row_number() over课程编号为4的课程成绩相同的人排名相同不同,排名连续 1 2 3 4
select cno 课程编号, row_number() over(partitionby cno orderby grade desc) 排名
from t_score
whereinstr('2,4', cno) > 0
![rank() over,dense_rank() over,row_number() over的区别 - JAVA学习博客 - MyJAVA](http://img3.ph.126.net/_c9IVWjE3ZBdWI2bZWrNzA==/1333628439672662443.jpg)