地域ごとの最多受賞アスリート
この演習の目標は、地域ごとに最多受賞のアスリートを表示することです。 このレポートを作成するには、各行に連番の整数を振る 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 を使用します。
この演習はコースの一部です
SQLでのレポーティング
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
SELECT
-- Query region, athlete_name, and total gold medals
____,
____ AS athlete_name,
____ AS total_golds,
-- Assign a regional rank to each athlete
____ AS row_num
FROM ____ AS s
JOIN ____ AS a
ON ____
JOIN ____ AS c
ON ____
GROUP BY ____;