始める無料で始める

獲得メダル数で選手に順位を付ける

第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;
コードを編集して実行