始める無料で始める

OVER 句の理解

ウィンドウ関数を使うと、任意の変数を基準にデータを並べ替え、RANK(順位付け)できます。設定する際は、順位を決めるための列や計算式を指定する必要があります。これは OVER() 句の中に ORDER BY 句を記述することで行います。以下に例を示します。

SELECT 
    id,
    RANK() OVER(ORDER BY home_goal) AS rank
FROM match;

この練習では、リーグ別に 1 試合あたりの平均得点を集計し、得点が多い順にランク付けしたデータセットを作成します。

この演習はコースの一部です

SQL のデータ操作

コースを見る

演習の手順

  • league テーブルと matchテーブルから、リーグ名と平均総得点を SELECT してください。
  • データベース内の全リーグを対象に、平均得点の RANK() を計算するウィンドウ関数を完成させてください。
  • Rank OVERの順位の基準は、ホームとアウェイの合計得点の平均です。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

SELECT 
	-- Select the league name and average goals scored
	___ AS league,
    ___(___ + ___.away_goal) AS avg_goals,
    -- Rank each league over the average goals
    ___ ___(___ ___ AVG(___.home_goal + ___)) AS league_rank
FROM league AS l
LEFT JOIN match AS m 
ON l.id = m.country_id
WHERE m.season = '2011/2012'
GROUP BY l.name
-- Order the query by the rank you created
ORDER BY ___;
コードを編集して実行