令和3年度 秋期 応用情報技術者試験 午前 問29
"部門別売上"表から,部門コードごと,期ごとの売上を得るSQL文はどれか。

キーボード:1〜4 で解答 → 次の問題 ← 前の問題
正解と解説を見る
解答する前に解説を開いたので、この問題は「見て解いた」として記録します(正解数には入りません)。
正解:イ
求める結果は、「部門コード」ごとに「第1期売上」「第2期売上」の2つの行が表示される形式です。
これは、表を縦持ち(UNIONを使って複数のSELECTを縦に結合)する形にする必要があります。
各選択肢のポイント
-
ア (INTERSECT)
INTERSECTは、2つのSELECT結果の共通部分を取得する演算です。
→ 売上が重複するデータのみが取得されるため、不適切。 -
イ (UNION)
UNIONは、2つのSELECT結果をすべて結合します。
→ 表を縦持ちに変換する際に最適で、結果セットがすべて含まれるため、求める形式を実現できます。 -
ウ (CROSS JOIN)
CROSS JOINは、直積(デカルト積)を取るため、結果が膨大になります。
→ 不適切です。 -
エ (INNER JOIN)
INNER JOINは、2つのテーブルを条件に基づいて結合します。
→ JOINでは表を縦持ちにすることはできません。不適切です。
答え
イ: UNION を使用
出典:令和3年度 秋期 応用情報技術者試験 午前 問29