基本情報技術者試験 過去問解説
GROUP BYとは?基本情報技術者試験 令和元年度 秋期 午前 問26を解説
基本情報技術者試験 令和元年度 秋期 午前 問26は、GROUP BYに関する理解を問う問題です。検索から入っても、問題文、選択肢、正解、解説、各選択肢がなぜ違うかをこのページだけで確認できます。
問題文
"得点"表から,学生ごとに全科目の点数の平均を算出し,平均が80点以上の学生の学生番号とその平均点を求める。a に入れる適切な字句はどれか。ここで,実線の下線は主キーを表す。 得点(学生番号, 科目, 点数) SELECT 学生番号, AVG(点数) FROM 得点 GROUP BY [a]
この問題の出題ポイント
- GROUP BYの定義だけでなく、問題文中の条件がどの選択肢に当てはまるかを確認する。
- 関連タグ: SQL、ビジネスモデル、メモリ、関係モデル。
選択肢
- ア科目 HAVING AVG(点数) >= 80
- イ科目 WHERE 点数 >= 80
- ウ学生番号 HAVING AVG(点数) >= 80正解
- エ学生番号 WHERE 点数 >= 80
正解
ウ: 学生番号 HAVING AVG(点数) >= 80
解説
学生ごとの集約なので GROUP BY 学生番号。集約後のフィルタは HAVING を用い AVG(点数) >= 80 で平均80点以上に絞る。
なぜ他の選択肢が違うのか
ア
科目でGROUP BYしてしまうと学生ごとの平均にならない。
イ
WHERE は集約前条件で平均値を扱えない。
ウ(正解)
学生番号でグループ化+HAVING で平均80以上=正解。
エ
WHERE では平均は使えない。
解き方の整理
GROUP BYの問題では、選択肢のキーワードだけで判断せず、問題文が示す条件と正解選択肢の説明が一致しているかを見ます。誤答選択肢は、似た用語を混ぜる、主体を入れ替える、目的や範囲を広げすぎる、という形で作られることが多いため、選択肢別解説まで確認しておくと復習効率が上がります。
関連問題
前後の問題
令和元年度 秋期 午前 の関連する問題
復習を続ける
間違えた問題、苦手タグ、模試履歴を保存して復習する導線を用意しています。広告なしPro、弱点分析、復習リマインダーは段階的に提供予定です。