戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

応用情報技術者 2020年 秋期 午前229


問題文

“東京在庫”表と“大阪在庫”表に対して、SQL文を実行して得られる結果はどれか。ここで、実線の下線は主キーを表す。
応用情報技術者 2020年 秋期 午前2 問29の問題画像応用情報技術者 2020年 秋期 午前2 問29の選択肢の画像

選択肢

(正解)

🔒 解説は解答すると表示されます

UNION ALLの結合結果【午前2解説】

正解の理由

選択肢エは、東京在庫と大阪在庫の全行を重複を排除せずにそのまま結合した結果を正確に示しています。
具体的には、東京在庫の「B002 25」と大阪在庫の「B002 15」、東京の「C003 35」と大阪の「C003 35」がそれぞれ重複して表示されているため、UNION ALLの仕様に合致しています。

解法ステップ

  1. SQL文のUNION ALLの意味を確認する。
  2. 東京在庫表と大阪在庫表の全行を単純に結合することを理解する。
  3. 重複行がそのまま残るため、両方に存在する商品コードは複数行になることを認識する。
  4. 選択肢の表と照合し、重複行の有無と行数を確認する。
  5. 重複を含む6行の選択肢エが正解と判断する。

選択肢別の誤答解説

  • ア:B002が2行あるがC003が抜けており、行数が4行で不足しているため誤り。
  • イ:在庫数を合算した形(B002が40、C003が70)であり、UNION ALLの動作と異なる。
  • ウ:C003が1行しかなく、東京と大阪両方のC003が表示されていないため誤り。
  • :全ての行が重複を含めて正しく表示されているため正解。

よくある誤解

UNIONUNION ALLの違いを混同し、重複行が自動的にまとめられると思い込むことが多いです。
また、在庫数を合算する処理と勘違いする受験者もいます。

補足コラム

UNIONは重複行を排除して結合するため、結果セットの行数が減ることがあります。一方、UNION ALLはパフォーマンスが良く、重複を気にしない場合に使われます。
在庫数の合算はGROUP BY句とSUM()関数を使って実現します。

FAQ

Q: UNIONUNION ALLの違いは何ですか?
A: UNIONは重複行を排除して結合し、UNION ALLは重複を排除せず全行を結合します。
Q: 在庫数を合算したい場合はどうすればいいですか?
A: GROUP BY 商品コードSUM(在庫数)を使い、集計クエリを作成します。

関連キーワード: UNION ALL, SQL結合、重複行、在庫管理、集計クエリ
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

応用情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について