SkillStack
テクノロジ30 / 80問

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

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

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

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】イ

【解説】 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に質問できる
SkillStackで無料で始める