テクノロジ30 / 80問
応用情報技術者試験 令和6年度 秋期 午前 問30
"成績"表に対して,SQL 文1と同一の結果を得るために,SQL 文 2 の [ a ] に入れる字句はどれか。

選択肢を押すと答え合わせができます。
正解と解説を見る
【正解】イ
【解説】 SQL文1は,各学生の最初の実施回(MIN(実施回))のデータを取得しています。
SQL文2でROW_NUMBER() OVER句を使って同じ結果を得るには,学生番号ごとに実施回の昇順で番号を振り,番号=1のレコードを取得します。
イの「PARTITION BY 学生番号 ORDER BY 実施回」が正解です。PARTITION BYで学生番号ごとにグループ化し,ORDER BY 実施回で実施回の昇順(デフォルトASC)に番号を振ります。番号1が最小の実施回に対応します。
アの「ORDER BY 学生番号, 実施回」はPARTITION BYがないため,全データ通しで1つの番号列になります。 ウの「PARTITION BY 学生番号 ORDER BY 得点 ASC」は得点の昇順で番号を振るため,最小得点のレコードが選ばれます。 エの「PARTITION BY 学生番号 ORDER BY 得点 DESC」は得点の降順で番号を振るため,最大得点のレコードが選ばれます。
【ポイント】 ROW_NUMBER()とPARTITION BY,ORDER BYの組み合わせは,SQLの分析関数の基本です。
出典:令和6年度 秋期 応用情報技術者試験 午前 問30
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。
この回の80問を、アプリで通しで解く
- 本番と同じ問題数・制限時間で通し演習(模試モード)
- 間違えた問題は自動で「復習すべき問題」に回る
- 解説で分からない点はAIに質問できる