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

[SQL文1]
SELECT R1.学生番号, R1.実施回, R1.得点 FROM 成績 R1
INNER JOIN
(SELECT 学生番号, MIN(実施回) AS 初回 FROM 成績
GROUP BY 学生番号) R2
ON R1.学生番号 = R2.学生番号
AND R1.実施回 = R2.初回
[SQL文2]
SELECT 学生番号, 実施回, 得点
FROM (SELECT 学生番号, 実施回, ROW_NUMBER() OVER( a ) AS 番号
FROM 成績) R1
WHERE R1.番号 = 1
| ア | ODER BY 学生番号, 実施回 |
| イ | PARTITION BY 学生番号 ODER BY 実施回 |
| ウ | PARTITION BY 学生番号 ODER BY 得点 ASC |
| エ | PARTITION BY 学生番号 ODER BY 得点 DSEC |
答え イ
【解説】
SQL文1から学生番号ごとの最も小さな実施回とその時の得点を表示する内容になっている。
これと同じ動作をSQL文2で実現するためにaに入るのは「PARTITION BY 学生番号 ODER BY 実施回」(イ)になる。
SELECT 学生番号, 実施回, 得点
FROM (SELECT 学生番号, 実施回, ROW_NUMBER()
OVER(PARTITION BY 学生番号 ODER BY 実施回) AS 番号 FROM 成績) R1
WHERE R1.番号 = 1
【キーワード】
・INNER JOIN