基本情報技術者試験 - 令和8年1月修了 - 問20

“中間テスト” 表からクラスごと,教科ごとの平均点を求め,クラス名,教科名の昇順に表示するSQL文中の [ a ] に入れる字句はどれか。

 中間テスト(クラス名,教科名,学生番号,名前,点数)

SQL文
 SELECT クラス名,教科名,AVG(点数) AS 平均点
  FROM 中間テスト [ a ]
GROUP BY クラス名,教科名 ORDER BY クラス名,AVG(点数)
GROUP BY クラス名,教科名 ORDER BY クラス名,教科名
GROUP BY クラス名,教科名,学生番号 ORDER BY クラス名,教科名,平均点
GROUP BY クラス名,平均点 ORDER BY クラス名,教科名
答え
分野 : テクノロジ系 › 技術要素 › データベース › データ操作
解説
SQL文GROUP BY句ORDER BY句の使い方を問う問題です。クラスごと,教科ごとの平均点を求めるには,GROUP BY句で「クラス名」と「教科名」の組合せごとにグループ化する必要があります。そして,結果をクラス名・教科名の昇順で並べるには,ORDER BY句にも同じく「クラス名,教科名」を指定します。従って,正しい記述は「GROUP BY クラス名,教科名 ORDER BY クラス名,教科名」となります。

誤りの選択肢のうち,ORDER BYにAVG(点数)を指定するものは,点数の平均順に並べ替えることになり,問題文の「昇順に表示する」という条件(クラス名・教科名順)とは異なります。GROUP BYに学生番号まで加えてしまう選択肢は,学生ごとに細かくグループ分けされすぎてしまい,正しい平均点が求められません。GROUP BYに「平均点」を指定するという選択肢も,集計前の段階では平均点という列は存在しないため,文法的に誤りとなります。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる