令和5年度 秋期 データベーススペシャリスト試験 午前II 問9

テクノロジデータベース

この問題は2023(R5)秋 データベーススペシャリスト 午前IIに出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

“成績”表から,クラスごとに得点の高い順に個人を順位付けした結果を求める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 成績

解答・解説を読む

正解: 選択肢

クラスごとに得点の高い順に個人を順位付けするためには、SQLのウィンドウ関数である RANK を使用します。

OVER 句内で PARTITION BY クラス とすることでクラスごとのグループに分割し、ORDER BY 得点 DESC と指定することで得点の高い順(降順)に順位を付けることができます。

各選択肢の解説

  • ア (CUME_DIST): 誤り。値の累積分布(相対的な位置)を0から1の範囲で計算する関数であり、順位付けではありません。

  • イ (MAX): 誤り。指定された列の最大値を求める集約関数であり、個人の順位付けには使用できません。

  • ウ (PERCENT_RANK): 誤り。相対的な順位(パーセンタイル)を0から1の範囲で計算する関数であり、通常の順位付けには適していません。

  • エ (RANK): 正解。指定された順序に基づいて順位を割り当てる関数です。同順位がある場合は同じ順位を割り当て、次の順位をスキップします。