合并两列然后组合

问题描述:

我有以下表和数据,我想合并一列中的loc1和loc2,并删除loc列中的重复值,然后根据group_no列对其进行分组。合并两列然后组合

drop table test; 
create table test (loc1 number(9), loc2 number(9), group_no number(9)); 
insert into test values(2,3,1); 
insert into test values(2,9,1); 
insert into test values(4,3,1); 
insert into test values(6,8,2); 
insert into test values(11,7,2); 
insert into test values(20,15,2); 
insert into test values(15,14,2); 
insert into test values(21,31,3); 
insert into test values(31,32,3); 

预期的结果是:

loc group_no 
2  1 
3  1 
9  1 
4  1 
6  2 
8  2 
11  2 
20  2 
15  2 
21  3 
31  3 
32  3 

问候

+0

您能展示预期的结果吗? –

根据您所需要的结果,您可以通过loc而不是group_no想组。

select t.loc, max(t.group_no) 
(
    select loc1 as loc, group_no from test 

    union 

    select loc2 as loc, group_no from test 
) t 
group by t.loc 
order by 2,1 
+0

但是group by不是升序 – user1873093

+0

只是添加'order by' –