Začněte nyníZačněte zdarma

Co je tu OVER?

Okenní funkce ti umožňují vytvořit RANK (pořadí) na základě libovolného sloupce, podle kterého chceš data seřadit. Při nastavování je potřeba určit, který sloupec nebo výpočet se má pro stanovení pořadí použít. To uděláš tak, že do klauzule OVER() přidáš klauzuli ORDER BY. Příklad:

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

V tomto cvičení vytvoříš datovou sadu se seřazenými zápasy podle toho, které ligy v průměru vstřelí nejvíce gólů na zápas.

Toto cvičení je součástí kurzu

Manipulace s daty v SQL

Zobrazit kurz

Pokyny k cvičení

  • Pomocí SELECT vyber název ligy a průměrný celkový počet vstřelených gólů z tabulek league a match.
  • Dokonči okenní funkci tak, aby vypočítala RANK() průměrného počtu gólů napříč všemi ligami v databázi.
  • Seřaď pořadí pomocí OVER podle průměrného celkového počtu gólů vstřelených doma i venku.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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 ___;
Upravit a spustit kód