今天用了分析函数,然后上网看了有很多分析函数的前缀,比如row_number和rank等,当时并不知道这些函数的区别,于是自己就做了一些实验
row_number()和rownum差不多,功能更强一点(可以在各个分组内从1开时排序).
rank()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内).
dense_rank()是连续排序,有两个第二名时仍然跟着第三名。相比之下row_number是没有重复值的 .
使用row_number可以看出,排序是有连续性的,没有跳号,即使是一样的值
上图,按照deptno分组排序之后,deptno=20相同2个3000,row_number是连续往下排序
使用rank可以看出,排序是跳跃性的:
不难看出,使用rank时候,相同的deptno 排序的序号是相同的,但是之后一个会直接跳过去,进行下一个数字显示。