問題
下表は 2011 年 1 月 30 日から同年 2 月 20 日までの販売履歴表である。この表に対して次の SQL 文を実行した場合、下記の解答群の中のどの結果を得るか。最も適切なものを選べ。 SELECT 担当者コード, 製品名, SUM(個数) FROM 販売履歴表 GROUP BY 担当者コード, 製品名 HAVING SUM(個数)>=3

選択肢
- 1担当者コードと製品名の組合せ別の SUM(個数) を集計し、E102/エアコン=3、E102/電池=3、P101/電池=10 の3行を返す表。
- 2HAVING を無視して、E102/エアコン=2、E102/エアコン=1、E102/電池=3、P101/電池=10 の4行を返す表。
- 3製品名のみで GROUP BY し、テレビ=5、エアコン=3、電池=13 を返す表。
- 4製品ごとの個別レコードを返し、エアコン=3、電池=3、電池=10 を返す表。
正解
1. 担当者コードと製品名の組合せ別の SUM(個数) を集計し、E102/エアコン=3、E102/電池=3、P101/電池=10 の3行を返す表。
詳しい解説を見る解説を閉じる
解説
SQL は「担当者コード, 製品名 でグループ化し、個数合計が 3 以上のグループのみ抽出」する処理。販売履歴表をグループごとに合計すると、E103/テレビ=2、E102/エアコン=3、P101/電池=10、E102/電池=3、P101/テレビ=2、P102/テレビ=2 となる。HAVING SUM(個数)>=3 で抽出されるのは E102/エアコン=3、P101/電池=10、E102/電池=3 の3行であり、選択肢アに一致する。イは HAVING 条件を無視している。ウは GROUP BY が「担当者コード, 製品名」の両方であるべきところを「製品名のみ」と解釈しており誤り。エは SUM 集計を行っていない誤った結果。(出典: 一般社団法人 中小企業診断協会 平成23年度 中小企業診断士1次試験 経営情報システム 第8問)
中小企業診断士トップ
一問一答・予想問題・まとめノート