メインコンテンツへ
データベースUNION/INTERSECT/EXCEPT

集合 A = {1, 2, 3, 4, 5}、集合 B = {3, 4, 5, 6, 7} として、`A UNION B`、`A INTERSECT B`、`A EXCEPT B` の結果のレコード数をそれぞれ答えたとき、正しいものはどれか。

ア.UNION=7, INTERSECT=3, EXCEPT=2正解
イ.UNION=10, INTERSECT=3, EXCEPT=2
ウ.UNION=7, INTERSECT=2, EXCEPT=3
エ.UNION=10, INTERSECT=5, EXCEPT=0

解説

UNION は「どちらかに入っているものを全部集める(重複なし)」、INTERSECT は「両方に入っているものだけ」、EXCEPT は「A にあって B にないものだけ」。ベン図を頭に描くとすっきり分かる。

なぜ ア が正解か

A={1,2,3,4,5} B={3,4,5,6,7} ・UNION(和集合): {1,2,3,4,5,6,7} → 7件(重複の3,4,5は1回のみカウント) ・INTERSECT(積集合/共通部分): {3,4,5} → 3件 ・EXCEPT(差集合): A にあって B にないもの = {1,2} → 2件 よって UNION=7, INTERSECT=3, EXCEPT=2 が正解。

なぜ イ は間違いか

UNION=10 は重複を除かずに単純に合計した場合(5+5=10)の誤り。UNION ALL なら10件だが UNION は重複を除くため7件となる。UNION と UNION ALL を混同した誤り。

なぜ ウ は間違いか

INTERSECT と EXCEPT の値が入れ替わっている。交差(共通)は3件、差分(Aのみにあるもの)は2件。INTERSECTとEXCEPTを混同した誤り。

なぜ エ は間違いか

UNION=10(UNION ALL の混同)、INTERSECT=5(Aの全要素を共通と誤解)、EXCEPT=0(差なしと誤解)という3つの誤りが重なっている。

出典: AI生成問題(学習用)