平成31年度 春期 基本情報技術者試験 午前 問27
テクノロジ/データベース“中間テスト”表からクラスごと,教科ごとの平均点を求め,クラス名,教科名の昇順に表示するSQL文中のaに入れる字句はどれか。 中間テスト(クラス名,教科名,学生番号,名前,点数) 〔SQL文〕 SELECT クラス名, 教科名, AVG(点数) AS 平均点 FROM 中間テスト a
出典:平成31年度 春期 基本情報技術者試験 午前 問27
- アGROUP BY クラス名, 教科名 ORDER BY クラス名, AVG(点数)
- イGROUP BY クラス名, 教科名 ORDER BY クラス名, 教科名
- ウGROUP BY クラス名, 教科名, 学生番号 ORDER BY クラス名, 教科名, 平均点
- エGROUP BY クラス名, 平均点 ORDER BY クラス名, 教科名
正解:イ
解説
クラスごと,教科ごとに平均点を集計するにはGROUP BY クラス名, 教科名が必要です。さらにクラス名,教科名の昇順に表示するにはORDER BY クラス名, 教科名を指定します。
選択肢ごとの解説
- ア誤り。ORDER BYにAVG(点数)を指定すると平均点の値で並び替えることになり,クラス名,教科名の昇順という指定を満たしません。
- イ正しい。GROUP BY クラス名, 教科名でクラスと教科ごとに集計し,ORDER BY クラス名, 教科名でクラス名,教科名の昇順に表示できます。
- ウ誤り。GROUP BYに学生番号まで加えると,学生ごとに集計されてしまい,クラス・教科ごとの平均点にはなりません。
- エ誤り。GROUP BYに平均点(集計結果)を含めることはできず,SQLとして不適切な指定です。