sql 按照值拍排序进行加序号问题:RANK()、DENSE_RANK()以及ROW_NUMBER()

数据库查询,很对数据进行分组,排序加序号

RANK()、DENSE_RANK()以及ROW_NUMBER()这三个函数都是对分过组的数据排序加序号,这三个函数又各自有区别 

ROW_NUMBER()是无论值是否相同都排序;是没有重复值的排序(即使两条记录相同,序号也不重复的,不会有同序号。

sql 按照值拍排序进行加序号问题:RANK()、DENSE_RANK()以及ROW_NUMBER()

 DENSE_RANK()是遇到相同的值就以相同的序号,当再次遇到不同的值序号排名继续加

 是连续的排序,两个第1名仍然跟着第2名 

sql 按照值拍排序进行加序号问题:RANK()、DENSE_RANK()以及ROW_NUMBER() 

 RANK() 是跳跃排序,两个第1名下来就是第3名

sql 按照值拍排序进行加序号问题:RANK()、DENSE_RANK()以及ROW_NUMBER()

最后借用一张图

sql 按照值拍排序进行加序号问题:RANK()、DENSE_RANK()以及ROW_NUMBER()