問題
"成績"表に対して、SQL 文 1 と同一の結果を得るために、SQL 文 2 の a に入れる字句はどれか。SQL 文 1 は各学生番号ごとに最小の実施回の行を求めるもので、SQL 文 2 はウィンドウ関数 ROW_NUMBER() OVER ( a ) で各学生番号内の並び順に行番号を付け、番号 = 1 の行を取り出す。
選択肢
- 1ORDER BY 学生番号, 実施回
- 2PARTITION BY 学生番号 ORDER BY 実施回
- 3PARTITION BY 学生番号 ORDER BY 得点 ASC
- 4PARTITION BY 学生番号 ORDER BY 得点 DESC
正解
2. PARTITION BY 学生番号 ORDER BY 実施回
詳しい解説を見る解説を閉じる
解説
SQL 文 1 は学生番号ごとに最小の実施回(MIN(実施回))をもつ行を抽出している。これをウィンドウ関数で再現するには、学生番号ごとにグループ化(PARTITION BY 学生番号)し、実施回の昇順(ORDER BY 実施回)に行番号を振って番号 = 1(=実施回が最小)の行を取り出せばよい。よってイが正解。得点で並べるウ・エは実施回が最小の行を選べず、PARTITION のないアは学生ごとの抽出ができない。(出典: 令和6年度 秋期 応用情報技術者試験 午前 問30)
一問一答
全400問を繰り返し学習