HOME»基本情報技術者令和5年免除»問21
基本情報技術者令和5年免除 問21
問21
国語と数学の試験を実施し,2教科の成績は氏名とともに"得点"表に記録されている。1教科は平均点以上で,残りの1教科は平均点未満の生徒氏名を"得点"表から抽出するSQL文はどれか。ここで,条件文Aと条件文Bには,それぞれ次の条件が与えられているものとする。
〔条件文〕
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)
- [出典]
- 午前免除試験 R5-7月 問20
- 基本情報技術者 H17 問60と同題
分類
テクノロジ系 » データベース » データ操作
正解
ウ
解説
選択肢を見ると異なっているのはWHERE句以降の条件式だけなので、この部分が正しい結果を返すかを検証していきます。ANDは論理積、ORは論理和を表します。
表からの抽出条件である"1教科は平均点以上で,残りの1教科は平均点未満"をベン図で表現すると次のようになります。少なくとも1教科が平均点以上である部分集合から、両方が平均点以上である部分集合を除いた部分となります。
それぞれの条件式も同様にベン図で表現してみると、「ウ」が一致することがわかります。
表からの抽出条件である"1教科は平均点以上で,残りの1教科は平均点未満"をベン図で表現すると次のようになります。少なくとも1教科が平均点以上である部分集合から、両方が平均点以上である部分集合を除いた部分となります。
![21.png/image-size:150×135](img/21.png)