文章字数:353,阅读全文大约需要1分钟
一、ROW_NUMBER
作用:给查询的数据加上行号
例如:
1 | select ROW_NUMBER() over(order by score desc) index,score,name from studentScore |
查询学生的成绩score
和名字name
并且根据成绩排序order by score desc
,最后加上行号ROW_NUMBER() over...
1 | index|score|name |
二、RANK
作用:排名,如果有同名次的,会累加名次。比如找前5名,没有同名次的时候输出名次1,2,3,4,5的数据。如果有名次一样的,输出的则是名次1,2,2,4,5。
例如:
1 | select RANK() over(order by studentScore desc) studentRank, * from studentScore |
1 | studentRank|score|name |
三、DENSE_RANK
作用:排名,区别于RANK。当有同名次的时候,不会累计,即有同名次是会显示名次1,2,2,3,4
例如:
1 | select DENSE_RANK() over(order by studentScore desc) studentRank, * from studentScore |
1 | studentRank|score|name |
NTILE
作用:将数据切分成几个部分,并标记部分代号。比如NTILE(2),就是将所有数据平分成两个部分,一部分是1,另一部分是2
例如
1 | select NTILE(2) over(order by studentScore desc) number,* from studentScore |
1 | studentRank|score|name |
关键词: sql