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関数でグループ化してます。