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

oracle分析函数 row_number()怎么用
如题:oracle分析函数 row_number()怎么用

我们项目组用了好多什么分析函数,可是本人不理解,谁能通俗解一下不
Oracle

------解决方案--------------------
row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)

分组排序

举例:
drop table test;
create table test(id varchar2(10),name varchar2(20),class varchar2(20),amount number);

insert into test values('1','马高峰1','200701',100);
insert into test values('2','马高峰2','200701',95);
insert into test values('3','马高峰3','200702',95);
insert into test values('4','马高峰4','200702',99.5);
insert into test values('5','马高峰5','200702',90);



select id,name,class,amount,row_number()over(partition by class order by amount ) rownumber from test;

结果:
    ID NAME CLASS AMOUNT ROWNUMBER
1 2 马高峰2 200701 95         1
2 1 马高峰1 200701 100         2
3 5 马高峰5 200702 90         1
4 3 马高峰3 200702 95         2
5 4 马高峰4 200702 99.5         3

够详细了吧

还想看其它几个分析函数的话,去这 :http://www.meirirm.com/meirirm/index.php/category/it

一个叫每日热卖的博客空间,里面介绍了各种分析函数的举例,嘿嘿