平成26年度春期 問28 / 80

平成26年度 春期 応用情報技術者試験 午前 問28

“東京在庫”表と“大阪在庫”表に対して,SQL文を実行して得られる結果はどれか。ここで,商品コードは各表の主キーである。

東京在庫

商品コード 在庫数
A001 50
B002 25
C003 35

大阪在庫

商品コード 在庫数
B002 15
C003 35
D004 80

〔SQL文〕

SELECT 商品コード, 在庫数 FROM 東京在庫
  UNION ALL
SELECT 商品コード, 在庫数 FROM 大阪在庫

問題の図

キーボード:1〜4 で解答 → 次の問題 ← 前の問題

正解と解説を見る

正解:エ

UNION ALL は,二つのSELECT文の結果を,重複する行も取り除かずにすべて結合します(UNION は重複行を1行にまとめます)。

東京在庫の3行と大阪在庫の3行がすべて残るので,結果は次の6行になります。

商品コード 在庫数
A001 50
B002 25
B002 15
C003 35
C003 35
D004 80
  • ア: 4行(A001,B002×2,D004)の結果
    誤り。C003の行が欠けており,UNION ALLの結果ではありません。

  • イ: 4行(在庫数を商品コードごとに合計した結果)
    誤り。商品コードごとに在庫数を合計した結果であり,GROUP BYとSUMで集計したときの結果です。

  • ウ: 5行(重複行を除いた結果)
    誤り。重複する行(C003, 35)を1行にまとめた結果で,UNION(ALLなし)の結果です。

  • エ: 6行(重複行も含めたすべての行)
    正しい。重複行も含めて両方の表のすべての行を結合した,UNION ALLの結果です。


答え

エ: 6行(重複行も含めたすべての行)

出典:平成26年度 春期 応用情報技術者試験 午前 問28

平成26年度春期の他の問題