国語と数学の試験を実施し、2教科の成績は氏名とともに“得点”表に記録されている。1教科は平均点以上で、残りの1教科は平均点未満の生徒氏名を“得点”表から抽出する SQL 文はどれか。ここで、条件文 A と条件文 B には、それぞれ次の条件が与えられているものとする。
[条件文] | |
A | 国語の点数が国語の平均点以上 |
B | 数学の点数が数学の平均点以上 |
ア | SELECT 生徒氏名 FROM 得点 WHERE (A AND B) AND NOT (A AND B) |
イ | SELECT 生徒氏名 FROM 得点 WHERE (A AND B) AND NOT (A OR B) |
ウ | SELECT 生徒氏名 FROM 得点 WHERE (A OR B) AND NOT (A AND B) |
エ | SELECT 生徒氏名 FROM 得点 WHERE (A OR B) AND NOT (A OR B) |
問題文の条件から、「1教科は平均点以上」、「残りの2教科は平均点未満」の生徒氏名を抽出することになる。
最初の条件はどちらかが平均点以上ということで、A OR B になる。 また、2つ目の条件は2科目とも平均点以上の否定になるので、 A AND B の否定になる。
よって、WHERE (A OR B) AND NOT (A AND B) となる。