問29令和2年度 10月テクノロジ系
“東京在庫”表と“大阪在庫”表に対して,SQL文を実行して得られる結果はどれか。ここで,実線の下線は主キーを表す。 東京在庫 商品コード 在庫数 A001 50 B002 25 C003 35 大阪在庫 商品コード 在庫数 B002 15 C003 35 D004 80 〔SQL文〕 SELECT 商品コード,在庫数 FROM 東京在庫 UNION ALL SELECT 商品コード,在庫数 FROM 大阪在庫

- ア商品コード:A001,在庫数:50 商品コード:B002,在庫数:25 商品コード:B002,在庫数:15 商品コード:D004,在庫数:80
- イ商品コード:A001,在庫数:50 商品コード:B002,在庫数:40 商品コード:C003,在庫数:70 商品コード:D004,在庫数:80
- ウ商品コード:A001,在庫数:50 商品コード:B002,在庫数:25 商品コード:B002,在庫数:15 商品コード:C003,在庫数:35 商品コード:D004,在庫数:80
- エ商品コード:A001,在庫数:50 商品コード:B002,在庫数:25 商品コード:B002,在庫数:15 商品コード:C003,在庫数:35 商品コード:C003,在庫数:35 商品コード:D004,在庫数:80
正解はエ
解説 本サイト独自(IPA公表のものではありません)
エ UNION ALLは,二つのSELECTで得た行を重複も含めてそのまま結合する。したがって,両表にあるC003,35は2行とも残り,値が異なるB002の2行を含めた全6行を示すエが正しい。
- ア 両表に同じC003,35があることを理由に,重複した2行を両方とも結果から除いてしまっている。UNION ALLでは,この2行もそのまま残る。
- イ 商品コードごとに在庫数を合計し,B002を40,C003を70としている。UNION ALLは在庫数を集計せず,各SELECTの行を連結する。
- ウ 両表で完全に同じC003,35を1行にまとめており,UNION ALLを重複行を除く結合と取り違えている。重複する2行は両方残る。
この解説は間違っています
この解説は,別のモデルによるレビューを受けています。
出典:令和2年度 10月 応用情報技術者試験 午前 問29