修了試験 2020-06-14実施分 基本情報技術者試験 問28
“中間テスト”表からクラスごと,教科ごとの平均点を求め,クラス名,教科名の昇順に表示するSQL文中のaに入れる字句はどれか。 中間テスト(クラス名,教科名,学生番号,名前,点数) 〔SQL文〕 SELECT クラス名, 教科名, AVG(点数) AS 平均点 FROM 中間テスト a
正答2
解説
正解は2です。 SQLのGROUP BY句とORDER BY句の使い方を問う問題です。 クラスごと、教科ごとの平均点を求めるには、クラス名と教科名の組でグループ化します。 表示順は、クラス名、教科名の昇順に並べ替えます。 ORDER BYで並び順を省略すると昇順になります。 【選択肢別解説】 1:× GROUP BYは正しいものの、ORDER BYの2番目の並べ替えキーが AVG(点数) になっています。 問題が求めるのは教科名の昇順なので誤りです。 2:○ GROUP BY クラス名, 教科名 で、クラスと教科の組ごとに平均点を求められます。 ORDER BY クラス名, 教科名 で、求められた順に並べ替えられます。 3:× GROUP BYに学生番号を加えると、学生ごとに細かくグループ化されてしまいます。 各学生の点数がそのまま平均点となり、クラス・教科ごとの平均にはなりません。 4:× 平均点は集計結果に付けた別名なので、グループ化の単位には使えません。 また教科名をGROUP BYに含めていないので、SELECT句で教科名を表示できません。 【ポイント】 GROUP BYを使うとき、SELECT句に書ける列は「GROUP BYに指定した列」と「集合関数(AVG、SUMなど)」だけです。 ORDER BYは昇順がASC(省略可)、降順がDESCです。まとめて解く
修了試験 2020-06-14実施分を通しで解く(80問)→