1. 学ぶ
  2. /
  3. コース
  4. /
  5. SQLでのレポーティング

Connected

演習

地域ごとの最多受賞アスリート

この演習の目標は、地域ごとに最多受賞のアスリートを表示することです。 このレポートを作成するには、各行に連番の整数を振る ROW_NUMBER() ウィンドウ関数を使います。最初の行は 1、2 行目は 2、というように続きます。

このウィンドウ関数の構文は ROW_NUMBER() OVER (PARTITION BY field ORDER BY field) です。最初の関数には引数がない点に注目してください。

正しく設定できていれば、row_num = 1 はその地域で最も受賞数の多いアスリートを表します。合計が同じアスリートが複数いる場合は、そのうちの誰か 1 人がトップとして表示されます。なお、HAVING や WHERE 句の中でウィンドウ計算は使えないため、フィルタリングにはサブクエリを使用する必要があります。

必要に応じて E:R 図 を参照してください。ヌル処理を避けるため、summer_games_clean を使用します。

指示1 / 2

undefined XP
    1
    2
  • summer_games_clean、athletes、countries を結合して、region、athlete_name、total_golds を取得するクエリを作成します。
  • ROW_NUMBER() を使って、獲得した金メダル合計に基づき各地域内での順位を割り当てる row_num というフィールドを追加します。