oracle三个排序函数的联系与区别-ROW_NUMBER() 、RANK()、DENSKRANK ()


三个排序函数的区别(简单版)

1.ROW_NUMBER

2.RANK

3.DENSKRANK 

这三个函数都是依托窗口函数进行的分组后的排序,对于排序的特点有些细节的区别

 

现有product表数据如下

1. ROW_NUMBER() 就是简单地按照Partition by要分组的字段排序,若order by后的字段值相同会区分出大小(原则不详),整体来说是的由1到N的排序

select t.*,row_number() over (partition by product_type order by sale_price) from product t

2.Rank()相同合为一,跳跃排序。如果三个人,由两个人相同,则会显示1,2,2,4

select t.*,rank() over (partition by product_type order by sale_price) from product t

3.DENSE_RANK相同为合一,连续排序。如果三个人中有两个相同,则会显示1,2,2,3

select t.*,dense_rank() over (partition by product_type order by sale_price) from product t

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM