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
Pokyny k cvičení
- Pomocí
SELECTvyber název ligy a průměrný celkový počet vstřelených gólů z tabulekleagueamatch. - 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í
OVERpodle 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 ___;