row_number:不考虑并列的情况,哪怕分数相同,排名都是一溜下来的自然数。
dense_rank和rank 考虑并列的情况,区别在于rank不连续,并列排名的个数会影响接下来的排名,表现为数字的中断,而dense_rank 不管有几个并列的第2名,接下来都是从3开始排。且看下面的例子:对number进行排序,number一样的通过id升序排序
- DENSE_RANK()


-
Rank()

-
Row_number
本文详细介绍了SQL中的三种窗口函数:row_number, rank 和 dense_rank 的使用方法及区别。重点讲解了它们在处理并列情况下的不同表现,以及如何对数据进行有效排序。
row_number:不考虑并列的情况,哪怕分数相同,排名都是一溜下来的自然数。
dense_rank和rank 考虑并列的情况,区别在于rank不连续,并列排名的个数会影响接下来的排名,表现为数字的中断,而dense_rank 不管有几个并列的第2名,接下来都是从3开始排。且看下面的例子:对number进行排序,number一样的通过id升序排序




269
1636
1980

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