獲得メダル数で選手に順位を付ける
第1章では、授与されたメダル数で選手に順位を付けるために ROW_NUMBER を使いました。しかし、ROW_NUMBER は同じメダル数の選手にも別々の番号を割り当ててしまうため、ランキング関数としては適していません。メダル数が同じであれば、同じ順位になるべきです。
この演習はコースの一部です
PostgreSQL 集計統計とウィンドウ関数
演習の手順
- 各選手を獲得メダル数で順位付けしてください。カウントが多いほど上位になり、同じ値の場合は同じ順位番号になるようにします。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
WITH Athlete_Medals AS (
SELECT
Athlete,
COUNT(*) AS Medals
FROM Summer_Medals
GROUP BY Athlete)
SELECT
Athlete,
Medals,
-- Rank athletes by the medals they've won
___ OVER (ORDER BY ___ DESC) AS Rank_N
FROM Athlete_Medals
ORDER BY Medals DESC;