広告スペース(バナー)
🗄️SQL レッスン
データ操作とサブクエリ5▾
構文の基本を深める7▾
応用的な条件・結合7▾
検索とテーブル操作の応用6▾
高度なクエリ技法6▾
集計とデータ整合性6▾
レッスン 11 / 50
ウィンドウ関数で順位をつけよう
このレッスンでは、ウィンドウ関数を使った順位付けの方法を学び、GROUP BYとは違う一歩進んだ集計テクニックを理解することを目標にします。「SQL ウィンドウ関数 RANK」で調べている方向けです。
RANK() OVER (ORDER BY 列 DESC)のようなウィンドウ関数を使うと、GROUP BYで行をまとめずに、1行ごとに順位や累計を計算できます。集計の中でも一歩進んだテクニックです。
サンプルコードでは、RANK() OVER (ORDER BY score DESC)という指定で、各生徒の点数に応じた順位を、元の行を保ったまま計算しています。GROUP BYと違い、各生徒の名前や点数がそのまま結果に残る点に注目してみましょう。
初心者がよくつまずくのが、OVERの後のカッコの中身の意味です。この部分は「どの範囲を対象に、どんな順序で」計算するかを指定する場所で、慣れないうちは複雑に見えますが、まずはORDER BYだけのシンプルな形から使ってみるのがおすすめです。
通常のGROUP BYは複数行を1行にまとめてしまいますが、ウィンドウ関数は元の行数を保ったまま「その行の順位」を追加できるのが大きな違いです。ランキング表示や累計売上の算出などに活用されます。
SQL
OUTPUT / 実行結果
💡 初回実行時はSQLエンジンの読み込みに数秒かかります。
🎯
ここまでできればゴール達成!
各グループ内でのランキングを付けられるようになります。
各グループ内でのランキングを付けられるようになります。
広告スペース(バナー)
広告スペース(記事内)