平成25年度 秋期28テクノロジ系

基本情報 平成25年度 秋期 問28:テクノロジ系に関する問題

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

  • aGROUP BY クラス名, 教科名 ORDER BY クラス名, AVG(点数)
  • bGROUP BY クラス名, 教科名 ORDER BY クラス名, 教科名正答
  • cGROUP BY クラス名, 教科名, 学生番号 ORDER BY クラス名, 教科名, 平均点 GROUP BY クラス名, 平均点 ORDER BY クラス名, 教科名
  • dH ささ
正答:BGROUP BY クラス名, 教科名 ORDER BY クラス名, 教科名

AI解説(初心者・標準・上級)

理解度に合わせて3レベルの解説を無料で読めます。

初心者向けまずはここから。やさしく要点を解説

答えは b です。

「クラスごと、教科ごとの平均点」を出したいので、まずクラスと教科でグループ分けします。これがSQLでは `GROUP BY クラス名, 教科名`。

次に「クラス名、教科名の昇順で表示」したいので `ORDER BY クラス名, 教科名`。

👉 覚え方:GROUP BY=仲間集めて平均/ORDER BY=並べ替え。問題文の「ごと」がGROUP BY、「昇順」がORDER BYのサイン。

ほかの選択肢:a は並べ替えキーがおかしい/c はGROUP BYに学生番号まで入っていて細かすぎる/d はそもそも文字化け。

標準試験対策の基準レベル

なぜこれが正解か

正解は b。「クラスごと・教科ごとの平均点」を求めるには、グループ化キーがクラス名と教科名の組合せである必要がある。これにより`AVG(点数)`がクラス×教科の交差点で集計される。さらに「クラス名・教科名の昇順表示」は `ORDER BY クラス名, 教科名`(ASCはデフォルト省略可)。

各選択肢の解説

  • a:GROUP BYは正しいが、ORDER BYに `AVG(点数)` を入れてしまい昇順キーが教科名でなく平均点になる。
  • c:GROUP BYに学生番号まで含めると「学生ごと」になり、本来の集計単位(クラス×教科)が崩れる。
  • d:選択肢が文字化けしており検討不能。

覚え方・ひっかけ注意

「GROUP BYのキー=集計の粒度」。問題文の「ごと」を全てGROUP BYに並べる。ORDER BY は表示順、GROUP BY は集計単位で役割が違う。集約関数(AVG/SUM/COUNT等)を使ったSELECTでは、GROUP BYに指定していない非集約列をSELECTに書くとエラーになる(標準SQL準拠)点も頻出ひっかけ。

上級誤答論破・背景理論まで深掘り

理論的背景

SQLの集約クエリは関係代数の拡張演算「グループ化+集約」で表現できる: γ_クラス名,教科名;AVG(点数)(中間テスト)。実行時はオプティマイザが①ソートベースの集約(GROUP BYキーでソート後に連続走査)か②ハッシュベースの集約(ハッシュ表でグループ化)かを選択する。インデックスがGROUP BY列に張られていればソート省略でき高速。

句の論理的評価順序は SQL92 で FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY と規定され、これがエイリアス利用可否の根拠となる(SELECTで定義したエイリアスは ORDER BY では使えるが HAVING では使えない、など)。

実務での使われ方

GROUP BYは集計レポート・BI・ダッシュボードの基盤。OLAPではROLLUP / CUBE / GROUPING SETS拡張でクラス別小計・教科別小計・全体合計を一発で求められる(例: `GROUP BY ROLLUP(クラス名, 教科名)`)。ウィンドウ関数(`OVER(PARTITION BY ...)`)と組み合わせると行を保ったまま集計値を付加できる。

試験での位置づけ

FE午前のデータベース分野で必出。①GROUP BYと集約関数の組合せ、②HAVING句との違い(HAVING=集計後の絞込み、WHERE=集計前の絞込み)、③ORDER BY との混同、が三大論点。AP・DBスペシャリストではウィンドウ関数・CTE(WITH句)・再帰クエリまで範囲。

選択肢の発展補足

GROUP BYの粒度を誤ると「集計単位の粒度違い」というデータマートの典型バグになる。たとえば本問で学生番号を含めると「クラス×教科×学生」単位の平均(つまり個別点数そのもの)になり意味を失う。逆に「教科名のみ」でグループ化すれば全クラス横断の教科別平均となる。「何ごとに集計したいか」を主語で確認するのがバグ防止の鉄則。

出典・引用について

出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成25年度 秋期28/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。

テクノロジ系の他の過去問

1
テクノロジ系
2
テクノロジ系
3
テクノロジ系
4
テクノロジ系
5
テクノロジ系

あなたの弱点を診断して、合格までの最短ルートを

この分野を連続演習し、AIがあなたの弱点を分析。合格ナビなら基本情報の過去問を解きながら学べます。