トップページに戻る
次のSQLパズルへ
前のSQLパズルへ
10-14 組み合わせごとの合計を取得
SQLパズル
テーブル1
Col1 Col2 Col3 Col4
---- ---- ---- ----
10 10 30 10
10 20 30 10
10 20 40 10
テーブル2
Col1 Col2 Col3 Col4
---- ---- ---- ----
10 10 10 10
10 20 20 10
10 20 30 10
テーブル1とテーブル2で
Col1,Col2,Col3の組み合わせごとの、Col4の合計を出力する。
出力結果
Col1 Col2 Col3 Col4
---- ---- ---- ----
10 10 10 10
10 10 30 10
10 20 20 10
10 20 30 20
10 20 40 10
データ作成スクリプト
create table テーブル1(
Col1 number(2),
Col2 number(2),
Col3 number(2),
Col4 number(2));
create table テーブル2 as select * from テーブル1;
insert into テーブル1 values(10,10,30,10);
insert into テーブル1 values(10,20,30,10);
insert into テーブル1 values(10,20,40,10);
insert into テーブル2 values(10,10,10,10);
insert into テーブル2 values(10,20,20,10);
insert into テーブル2 values(10,20,30,10);
commit;
SQL
select Col1,Col2,Col3,sum(Col4) as Col4
from (select Col1,Col2,Col3,Col4 from テーブル1
union all select Col1,Col2,Col3,Col4 from テーブル2)
group by Col1,Col2,Col3
order by Col1,Col2,Col3;
解説
インラインビューでunion allで和集合を作って、
sum関数で合計を求めてます。