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

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


問題文

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

選択肢

(正解)

東京在庫表と大阪在庫表のUNION ALL結果【午前2 解説】

要点まとめ

  • 結論:
    UNION ALL
    は両テーブルの全行を重複を排除せずに結合し、全データをそのまま表示します。
  • 根拠:
    UNION ALL
    は重複行も含めて単純に結合するため、同じ商品コードが複数回現れることがあります。
  • 差がつくポイント:
    UNION
    との違いを理解し、重複行の扱いを正確に把握することが重要です。

正解の理由

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

よくある誤解

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

解法ステップ

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

選択肢別の誤答解説

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

補足コラム

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

FAQ

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

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

\ せっかくなら /

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

クイズ画面へ遷移する

すぐに利用可能!

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

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