RANK関数とは?らんくかんすう
RANK関数とは、指定した順序での順位を行ごとに返す順位付け関数。同値があると同じ順位を与え、その分だけ次の順位を飛ばす。飛ばさないDENSE_RANK、同値でも一意の連番を振るROW_NUMBERと対で覚える。試験では、上位n件の抽出や区分ごとの順位付けで問われる。
最終更新:2026-10-06
データベースSPを最短で暗記・合格する →具体例
RANK() OVER (PARTITION BY 支店 ORDER BY 売上 DESC) と書けば支店ごとに売上順位が付き、外側で順位3以下に絞れば支店別トップ3が取れる。売上が同額の2位が2人いる場合、RANKでは次が4位、DENSE_RANKでは3位、ROW_NUMBERでは同額でも2位と3位に分かれる。
試験での引っ掛け
順位付け関数はWHERE句では使えない。GROUP BYや集約より後に評価されるためで、順位で絞るには共通表式や導出表で一度包む必要がある。この評価順序の理解が問題の分かれ目になる。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。