基本情報技術者試験 過去問解説

SQLとは?基本情報技術者試験 平成25年度 春期 午前 問28を解説

基本情報技術者試験 平成25年度 春期 午前 問28は、SQLに関する理解を問う問題です。検索から入っても、問題文、選択肢、正解、解説、各選択肢がなぜ違うかをこのページだけで確認できます。

問題文

“中間テスト”表からクラスごと,教科ごとの平均点を求め,クラス名,教科名の昇順に表示するSQL文中のaに入れるべき字句はどれか。 中間テスト(クラス名,教科名,学生番号,名前,点数) 〔SQL文〕 SELECT クラス名, 教科名, AVG(点数) AS 平均点 FROM 中間テスト [a]

この問題の出題ポイント

  • SQLの定義だけでなく、問題文中の条件がどの選択肢に当てはまるかを確認する。
  • 関連タグ: SQL、ビジネスモデル、メモリ。

選択肢

  1. GROUP BY クラス名, 教科名 ORDER BY クラス名, AVG(点数)
  2. GROUP BY クラス名, 教科名 ORDER BY クラス名, 教科名正解
  3. GROUP BY クラス名, 教科名, 学生番号 ORDER BY クラス名, 教科名, 平均点
  4. GROUP BY クラス名, 平均点 ORDER BY クラス名, 教科名

正解

: GROUP BY クラス名, 教科名 ORDER BY クラス名, 教科名

解説

「クラスごと、教科ごとの平均点」を求めるには GROUP BY クラス名, 教科名 が必要で、「クラス名・教科名の昇順に表示」するには ORDER BY クラス名, 教科名 を指定します。よってイが正解です。

なぜ他の選択肢が違うのか

  • ORDER BY が「クラス名, AVG(点数)」となっており、求められている「教科名」での並び替えになっていません。

  • イ(正解)

    GROUP BY クラス名, 教科名 と ORDER BY クラス名, 教科名 の組合せで、クラス・教科の昇順に平均点を表示でき正解です。

  • GROUP BY に学生番号を含めると学生ごとの集約になってしまい、教科ごとの平均が得られません。

  • GROUP BY に平均点を含めるのは意味的に誤りで、また求めた平均点でグループ化することはありません。

解き方の整理

SQLの問題では、選択肢のキーワードだけで判断せず、問題文が示す条件と正解選択肢の説明が一致しているかを見ます。誤答選択肢は、似た用語を混ぜる、主体を入れ替える、目的や範囲を広げすぎる、という形で作られることが多いため、選択肢別解説まで確認しておくと復習効率が上がります。

関連問題

前後の問題

平成25年度 春期 午前 の関連する問題

復習を続ける

間違えた問題、苦手タグ、模試履歴を保存して復習する導線を用意しています。広告なしPro、弱点分析、復習リマインダーは段階的に提供予定です。