修了試験 2025-01-26実施分 基本情報技術者試験 問20
“中間テスト”表からクラスごと,教科ごとの平均点を求め,クラス名,教科名の昇順に表示するSQL文中のaに入れる字句はどれか。 中間テスト(クラス名,教科名,学生番号,名前,点数) 〔SQL文〕 SELECT クラス名,教科名,AVG(点数) AS 平均点 FROM 中間テスト [ a ]
正答2
解説
正解は2です。 グループ化と並べ替えを行うSQL文の、GROUP BY句とORDER BY句の書き方を問う問題です。 「クラスごと、教科ごと」の平均点を求めるには、クラス名と教科名でグループ化します。 「クラス名、教科名の昇順」に表示するには、ORDER BYにクラス名と教科名をこの順に指定します。 ORDER BYで並び順を指定しないときは昇順(ASC)になります。 【選択肢別解説】 1:× グループ化は正しいですが、ORDER BYの2番目が平均点になっています。 これでは、クラス内で教科名ではなく平均点の昇順に並ぶため、題意と合いません。 2:○ GROUP BY クラス名,教科名でクラスと教科の組ごとに平均点を求められます。 ORDER BY クラス名,教科名で、クラス名、教科名の昇順に表示できます。 3:× GROUP BYに学生番号を加えると、学生一人ずつの組でグループ化されてしまいます。 その結果、クラスと教科ごとの平均点にならないため誤りです。 4:× 平均点はグループ化した結果として求める値なので、GROUP BYには指定できません。 また、教科名をGROUP BYに含めないと、SELECTで教科名を表示できません。 【ポイント】 集計関数を使うとき、SELECTに書く集計以外の列は、すべてGROUP BYに含める必要があります。 並び順はORDER BYで指定し、降順にしたいときだけDESCを付けます。まとめて解く
修了試験 2025-01-26実施分を通しで解く(60問)→