経営情報システム H23年度 第8問

第8問

下表は2011年月30日から同年月20日までの販売履歴表である。この表に 対して次のSQL 文を実行した場合、下記の解答群の中のどの結果を得るか。最も 適切なものを選べ。 SELECT 担当者コード, 製品名, SUM(個数) FROM 販売履歴表 GROUP BY 担当者コード, 製品名 HAVING SUM(個数)>=3 販売履歴表 販売コード 製 品 名 個 数 販 売 日 担当者コード 101 テレビ 1 2011/1/30 E103 102 エアコン 2 2011/2/ 5 E102 103 テレビ 1 2011/2/ 7 E103 104 電 池 10 2011/2/ 7 P 101 105 エアコン 1 2011/2/10 E102 106 テレビ 2 2011/2/15 P 101 107 電 池 3 2011/2/16 E102 108 テレビ 2 2011/2/20 P 102

  1. 担当者コード製品名SUM(個数) E102
  2. アコン E102 電 池 P 101 電 池
  3. 担当者コード製品名SUM(個数) E102
  4. アコン E102
  5. アコン E102 電 池 P 101 電 池
  6. 製品名SUM(個数) テレビ
  7. アコン 電 池
  8. 製品名 個 数
  9. アコン 電 池 電 池 ― 7― ◇M6(688―139)
▼ 解答・解説を見る

正解:

解答:ア

〔SQLのGROUP BY・HAVINGによる集計結果を問う問題〕

SQL文は「担当者コードと製品名でグループ化し、個数合計が3以上のグループのみ抽出して、担当者コード・製品名・個数合計を表示」する。

担当者コード×製品名で個数を合計すると:

  • E103・テレビ:1+1=2 → 除外(<3)
  • E102・エアコン:2+1=3 → 抽出
  • P101・電池:10 → 抽出
  • P101・テレビ:2 → 除外
  • E102・電池:3 → 抽出
  • P102・テレビ:2 → 除外

抽出結果は「E102 エアコン 3」「P101 電池 10」「E102 電池 3」の3行で、表示列は担当者コード・製品名・SUM(個数)の3列。

  • ア(○):担当者コード・製品名・SUM(個数)の3列を持ち、HAVING条件(合計3以上)を満たす担当者コード別の行が並ぶ集計結果で正しい。
  • イ(×):担当者コードでグループ化していない(製品名のみで集計した)結果になっており不適。
  • ウ(×):担当者コード列が無く、GROUP BY指定(担当者コード, 製品名)に合致しない。
  • エ(×):個数を合計しておらず、HAVINGによる絞り込み(3以上)も反映されていない。

よって

#データベース

← 経営情報システムの一覧へ戻る