一、row_number()
row_number()排名,序号连续且不重复,即使表中遇到有一样的数值也是如此.
select score,row_number() OVER(order by score desc) as paiming from Scores;
二、rank()
row_number()排名,序号可以重复,但不连续,要求把排序的数值相同的归为一组且序号相同
select score,rank() OVER(order by score desc) as paiming from Scores;
三、dense_rank()
Dense_rank() 排序是连续的,也会把相同的值分为一组且每组排序号一样
select score,dense_rank() OVER(order by score desc) as paiming from Scores;
四、ntile()
Ntile(group_num)将表分为group_num个组,每组序号都一样。
select score,ntile(3) OVER(order by score desc) as paiming from Scores;