過去 3 年分の記録を保存している“試験結果”表から,2018 年度の平均点数が 600 点以上となったクラスのクラス名と平均点数の一覧を取得する SQL 文はどれか。ここで,実線の下線は主キーを表す。
試験結果
| 学生番号(主キー) | 受験年月日(主キー) | 点数 | クラス名 |
|---|
テクノロジ系
過去 3 年分の記録を保存している“試験結果”表から,2018 年度の平均点数が 600 点以上となったクラスのクラス名と平均点数の一覧を取得する SQL 文はどれか。ここで,実線の下線は主キーを表す。
試験結果
| 学生番号(主キー) | 受験年月日(主キー) | 点数 | クラス名 |
|---|
正解 イ
2018年度の行をWHEREで先に絞り込み、クラスごとの平均点の条件はHAVING AVG(点数) >= 600で指定します。
WHEREはグループ化の前に行を選ぶ条件です。HAVINGはGROUP BYでまとめた後のグループを選ぶ条件です。2018年度は2018-04-01から2019-03-31までなので、WHERE 受験年月日 BETWEEN '2018-04-01' AND '2019-03-31'で対象の行を絞ります。次にGROUP BY クラス名でクラスごとにまとめます。最後にHAVING AVG(点数) >= 600で、平均点数が600点以上のクラスだけを残します。
ア:年度で絞り込む条件がありません。過去3年分すべての点数で平均を求めてしまいます。
ウ:HAVINGに集約していない点数を書いています。条件にすべきなのはクラスごとの平均点であるAVG(点数)です。
エ:600点以上の行を先に選んでから平均しています。そのため、平均点数ではなく、600点以上の答案だけの平均になります。年度の条件も、最新の受験年月日しか見ていません。
出典:平成31年度 春期 応用情報技術者試験 問28
全年度から出題。10問で実力を判定します。登録不要。
出典:平成31年度 春期 応用情報技術者試験 問28(独立行政法人情報処理推進機構)
解説と用語ページは生成 AI が書き、別の生成 AI が確かめています。作り方