令和6年度秋期 応用情報技術者試験 午前 問30

分野:データベース|実際に出題されたIPA過去問題

“成績”表に対して,SQL文1と同一の結果を得るために,SQL文2のaに入れる字句はどれか。

問題の図表(IPA公式問題冊子より引用)
図表:IPA公式問題冊子より
  1. ア ORDER BY 学生番号, 実施回
  2. イ PARTITION BY 学生番号 ORDER BY 実施回
  3. ウ PARTITION BY 学生番号 ORDER BY 得点 ASC
  4. エ PARTITION BY 学生番号 ORDER BY 得点 DESC
解答・解説を見る

正解:イ

AI解説

SQL文1と同じ結果(学生ごとに実施回の順番で連番を振るなど)をウィンドウ関数で得るには、PARTITION BY で学生番号ごとにグループ化してグループ内の連番をリセットし、ORDER BY 実施回でそのグループ内の順序を実施回の昇順にする必要がある。よってイが正しい。 ア: PARTITION BY を指定していないため、学生番号ごとに連番がリセットされず、全体を通した連番になってしまい、SQL文1とは異なる結果になる。 イ: PARTITION BY 学生番号でグループを学生ごとに分け、ORDER BY 実施回でグループ内を実施回順に並べる指定であり、これがSQL文1と同一の結果を与える。 ウ: ORDER BY を得点の昇順にしており、実施回の順序ではなく得点順に並び替えてしまうため、SQL文1とは異なる結果になる。 エ: ORDER BY を得点の降順にしており、実施回の順序ではなく得点順(高得点順)に並び替えてしまうため、SQL文1とは異なる結果になる。 💡 ウィンドウ関数は『PARTITION BY=グループ化(集計のリセット単位)』『ORDER BY=グループ内の並び順』という役割分担を意識すると整理しやすい。

出典:令和6年度 秋期 応用情報技術者試験 午前 問30 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。
📱 演習アプリで解く(無料・登録不要・2,640問収録)

「データベース」分野の攻略ポイント

関係モデル・正規化・SQL・トランザクション管理・障害回復・データベース設計が中心です。計算問題は少なく、定義と手順を正確に覚えていれば確実に得点できる、いわば「取りこぼしてはいけない」分野です。特に正規形とACID特性は毎年のように形を変えて出ます。

データベースの攻略ポイントをすべて見る(要点5項目・ひっかけ3項目)→

同じ分野(データベース)の過去問