Oracle分析函数之排序 row_number() & rank()

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle分析函数之排序 row_number() & rank()相关的知识,希望对你有一定的参考价值。

参考技术A

对于排序分析,应用的业务分析场景很多,例如所有销售大区的TOP5、按具体规则对数据集进行重新排序编号等,这些业务场景采用分析函数中排序函数,将很方便简单。
当前常用的排序类分析函数包括:row_number()、rank()、dense_rank(),这三个函数都可应用在排序场景中,但 又有些许不同。

特点:对分组后的排序结果进行递增编号,出现同值的也是递增处理。

rank()特点:按分组后的排序结果进行递增编号,如出现相同值则序号一致,但相邻出现的不同值序号将从rown+N开始(rown为前一个值的序号,N为前一个值相同的个数)。

dense_rank()特点:和rank()相似,按分组后的排序结果进行递增编号,如出现相同值则序号一致,但相邻出现的不同值序号将从rown+1开始。

1.row_number()应用于 不区分同值排序 的业务场景;
2.rank()&dense_rank()应用于 区分同值排序 的业务场景,至于用rank和dense_rank,则要看对同值排序后对序号递增方式的具体要求来定。
有了上述三个函数,对于日常公司分析大区销售排名、销售代表排名、部门费用项排名等等,将会非常的方便快捷。

以上是关于Oracle分析函数之排序 row_number() & rank()的主要内容,如果未能解决你的问题,请参考以下文章

Oracle中排序函数的用法之ROW_NUMBER()_RANK()_DENSE_RANK() OVER()的区别

ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法

ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法

ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法

oracle函数 ROW_NUMBER()

oracle菜鸟学习之 分析函数-排序