研究row_number和rank分析函数的区别

来源:互联网 发布:linux while跳出循环 编辑:程序博客网 时间:2024/05/21 23:58

今天用了分析函数,然后上网看了有很多分析函数的前缀,比如row_number和rank等,当时并不知道这些函数的区别,于是自己就做了一些实验

row_number()和rownum差不多,功能更强一点(可以在各个分组内从1开时排序).

rank()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内).

dense_rank()是连续排序,有两个第二名时仍然跟着第三名。相比之下row_number是没有重复值的 .


使用row_number可以看出,排序是有连续性的,没有跳号,即使是一样的值



上图,按照deptno分组排序之后,deptno=20相同2个3000,row_number是连续往下排序


使用rank可以看出,排序是跳跃性的:



不难看出,使用rank时候,相同的deptno 排序的序号是相同的,但是之后一个会直接跳过去,进行下一个数字显示。



0 0
原创粉丝点击