応用情報技術者試験 応用情報技術者試験 令和2年度 午前29: “東京在庫”表と“大阪在庫”表に対して,SQL 文を実行して得られる結果はどれか。ここで,実線の下線は主キーを表す。 東京在庫 大阪在庫 〔SQL 文〕 SEL

応用情報技術者試験 令和2年度 午前
Q 2929 / 80
“東京在庫”表と“大阪在庫”表に対して,SQL 文を実行して得られる結果はどれか。ここで,実線の下線は主キーを表す。 東京在庫
商品コード在庫数
A00150
B00225
C00335
大阪在庫
商品コード在庫数
B00215
C00335
D00480
〔SQL 文〕 SELECT 商品コード,在庫数 FROM 東京在庫     UNION ALL SELECT 商品コード,在庫数 FROM 大阪在庫
この問の正解率:62.99%(354件)

問題本文

“東京在庫”表と“大阪在庫”表に対して,SQL 文を実行して得られる結果はどれか。ここで,実線の下線は主キーを表す。 東京在庫 大阪在庫 〔SQL 文〕 SELECT 商品コード,在庫数 FROM 東京在庫 UNION ALL SELECT 商品コード,在庫数 FROM 大阪在庫

選択肢

  • .
  • .
  • .
  • .

正解

.

解説

UNION は2つの問合せ結果を縦に連結する演算で、ALL を付けた UNION ALL は重複行を排除せずそのまますべて残す点が重要。東京在庫の3行と大阪在庫の3行を単純に足し合わせるので結果は6行になり、両表に共通して存在する(C003,35)も重複したまま2行とも残る。重複排除されず6行すべてが出力されるエが正解。

選択肢ごとの解説

  • .両表に共通の C003 の行が消えたり一部の行が欠けたりしており、全行をそのまま残すUNION ALLの結果とは一致しないため誤り。
  • .同じ商品コードの在庫数が合算(B002が40、C003が70)されているが、UNION ALLは行を連結するだけで集計はしないため誤り。
  • .(C003,35)が1行しか現れておらず、UNION ALL なら重複もそのまま残り2行になるはずなので誤り。
  • .両表の6行をすべて連結し、重複する(C003,35)も2行残しており、UNION ALLの結果として正しい。

応用情報技術者試験 令和2年度 午前過去問一覧へ戻る・問29