如果两个分数相同,则两个分数排名(Rank)相同。请注意,平分后的下一个名次应该是下一个连续的整数值。换句话说,名次之间不应该有“间隔”。
需要了解到sql排名的四个函数了
1、row_number函数
row_number函数是排名序号,连续不重复的,就是说,遇到了两个两个分数一样的也是顺序排名下去。
select *,row_number() OVER(order by number ) as row_num from num
2、rnak()函数
Rank() 函数会把要求排序的值相同的归为一组且每组序号一样,排序不会连续执行
select *,rank() OVER(order by number ) as row_num
from num
3、dense_rank
Dense_rank() 排序是连续的,也会把相同的值分为一组且每组排序号一样
select *,dense_rank() OVER(order by number ) as row_num
from num
4、ntile()
Ntile(group_num) 将所有记录分成group_num个组,每组序号一样
select *,ntile(2) OVER(order by number ) as row_num
from num