日期:2014-05-17  浏览次数:20843 次

Oracle开发专题之:分析函数2(Rank, Dense_rank, row_number) (转载)

目录
===============================================
1.使用rownum为记录排名
2.使用分析函数来为记录排名
3.使用分析函数为记录进行分组排名

一、使用rownum为记录排名:

在前面一篇《Oracle开发专题之:分析函数》,我们认识了分析函数的基本应用,现在我们再来考虑下面几个问题:

①对所有客户按订单总额进行排名
②按区域和客户订单总额进行排名
③找出订单总额排名前13位的客户
④找出订单总额最高、最低的客户
⑤找出订单总额排名前25%的客户


按照前面第一篇文章的思路,我们只能做到对各个分组的数据进行统计,如果需要排名的话那么只需要简单地加上rownum不就行了吗?事实情况是否如此想象般简单,我们来实践一下。

【1】测试环境:

?Name??????????????????????????????????????Null?????Type
?REGION_ID??????????????????????????????????????????NUMBER(2)
?CUSTOMER_SALES??????????????????????????
NUMBER


【2】测试数据:


----------?-----------?--------------
????????
10??????????29????????? ?? 903383
????????
10??????????28??????????? 986964
?????????
9??????????22?????????? 1036146
?????????
6???????????