fooテーブル refno1 refno2 val ------ ------ --- 1 null 100 2 1 50 3 null 400 4 null 200 5 null 500 6 5 250 7 5 100 8 null 300 fooテーブルを以下のように集計する。 出力結果 refno1 sum(val) ------ -------- 1 150 3 400 4 200 5 850 8 300
create table foo( refno1 number(1), refno2 number(1), val number(3)); insert into foo values(1,null,100); insert into foo values(2, 1, 50); insert into foo values(3,null,400); insert into foo values(4,null,200); insert into foo values(5,null,500); insert into foo values(6, 5,250); insert into foo values(7, 5,100); insert into foo values(8,null,300); commit;
select nvl(refno2,refno1) as refno1, sum(val) as "sum(val)" from foo group by nvl(refno2,refno1) order by refno1;
nvl関数でグループ化してます。