oracle 按照分组字段,排序字段取出第一行

前端之家收集整理的这篇文章主要介绍了oracle 按照分组字段,排序字段取出第一行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

wm_concat在行转列的时候非常有用,但在行转列的过程中的排序问题常常难以控制。

可见下面例子:
准备测试表:
drop table t;
create table t (n number,m number);
insert into t values(1,1);
insert into t values(5,3);
insert into t values(3,3);
insert into t values(6,5);
insert into t values(7,2);
insert into t values(2,2);
insert into t values(0,1);
insert into t values(11,1);
insert into t values(15,3);
insert into t values(13,3);
insert into t values(16,5);
insert into t values(17,2);
insert into t values(12,2);
insert into t values(10,1);
commit;

sql> select * from t order by 2,1;

N M
———- ———-
0 1
1 1
10 1
11 1
2 2
7 2
12 2
17 2
3 3
5 3
13 3
15 3
6 5
16 5
--按照m分组字段,n排序字段取出第一行

select * from ( select m,row_number() over (partition by m order by n) rn from t ) where rn<=1

猜你在找的Oracle相关文章