平成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