SQLのRANK関数と順位付けウィンドウ関数

SQLのウィンドウ関数(分析関数)において、指定した順序で連続した順位(同点の場合は同じ順位を付与し、次の順位をスキップする方式)を求める関数は RANK() です。本問の〔結果〕を見ると、クラスAでは得点80が1位、78が2位、63が3位となり、クラスBでは92が1位、70が2位と、クラスごとに得点の降順で1, 2, 3...と順位付けされています。したがって、空欄には RANK が入ります。 CUME_DIST() は、パーティション内での累積分布(0超〜1以下の相対順位割合)を計算する関数です。 MAX() は指定した列の最大値を求める集約・ウィンドウ関数であり、順位番号は返しません。 PERCENT_RANK() は、パーティション内でのパーセンタイル順位(0〜1の相対値)を計算する関数です。

“成績”表から,クラスごとに得点の高い順に個人を順位付けした結果を求める SQL 文の, a  に入れる字句はどれか。

成績

氏名

クラス

得点

情報太郎

A

80

情報次郎

A

63

情報花子

B

70

情報桜子

B

92

情報三郎

A

78

〔結果〕

氏名

クラス

得点

順位

情報太郎

A

80

1

情報三郎

A

78

2

情報次郎

A

63

3

情報桜子

B

92

1

情報花子

B

70

2

〔SQL 文〕

sql
SELECT 氏名, クラス, 得点,
       a  () OVER (PARTITION BY クラス ORDER BY 得点 DESC) 順位
 FROM 成績
出典令和5年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問9
ア
CUME_DIST
イ
MAX
ウ
PERCENT_RANK
エ
RANK