数据库查询,很对数据进行分组,排序加序号
RANK()、DENSE_RANK()以及ROW_NUMBER()这三个函数都是对分过组的数据排序加序号,这三个函数又各自有区别
ROW_NUMBER()是无论值是否相同都排序;是没有重复值的排序(即使两条记录相同,序号也不重复的,不会有同序号。

DENSE_RANK()是遇到相同的值就以相同的序号,当再次遇到不同的值序号排名继续加
是连续的排序,两个第1名仍然跟着第2名
RANK() 是跳跃排序,两个第1名下来就是第3名

最后借用一张图
本文深入解析了SQL中用于分组数据排序的ROW_NUMBER(), DENSE_RANK()和RANK()三个函数的区别与应用。ROW_NUMBER()确保每条记录都有唯一序号,DENSE_RANK()对相同值赋予相同序号,而RANK()则在遇到相同值后跳跃排序。
数据库查询,很对数据进行分组,排序加序号
RANK()、DENSE_RANK()以及ROW_NUMBER()这三个函数都是对分过组的数据排序加序号,这三个函数又各自有区别
ROW_NUMBER()是无论值是否相同都排序;是没有重复值的排序(即使两条记录相同,序号也不重复的,不会有同序号。

DENSE_RANK()是遇到相同的值就以相同的序号,当再次遇到不同的值序号排名继续加
是连续的排序,两个第1名仍然跟着第2名
RANK() 是跳跃排序,两个第1名下来就是第3名

最后借用一张图

被折叠的 条评论
为什么被折叠?