トップページに戻る
次のSQLパズルへ
前のSQLパズルへ
7-72 外部結合で結合した行数を取得
SQLパズル
商品テーブル
商品ID
------
1
2
3
商品売上テーブル
商品ID 販売日
------ ----------
1 2006/10/10
1 2006/10/11
1 2006/10/12
3 2006/10/13
商品IDごとの、
販売数(商品売上テーブルのレコード数)、
最終販売日(商品売上テーブルの販売日の最大値)
を出力する。
出力結果
商品ID 販売数 最終販売日
------ ------ ----------
1 3 2006/10/12
2 0 null
3 1 2006/10/13
SQL
with 商品 as (
select 1 as 商品ID from dual
union select 2 from dual
union select 3 from dual),
商品売上 as (
select 1 as 商品ID,to_date('2006/10/10','yyyy/mm/dd') as 販売日 from dual
union select 1,to_date('2006/10/11','yyyy/mm/dd') from dual
union select 1,to_date('2006/10/12','yyyy/mm/dd') from dual
union select 3,to_date('2006/10/13','yyyy/mm/dd') from dual)
select a.商品ID,count(b.商品ID) as 販売数,max(b.販売日) as 最終販売日
from 商品 a Left Join 商品売上 b
on a.商品ID = b.商品ID
group by a.商品ID
order by a.商品ID;
解説
count関数で、
外部結合で結合した行数を取得してます。