Co tu OVER?
Funkcje okna pozwalają tworzyć ranking (RANK) danych według dowolnej zmiennej, której chcesz użyć do sortowania. Aby to skonfigurować, musisz wskazać kolumnę lub obliczenie, na podstawie których ma być wyznaczony ranking. Służy do tego klauzula ORDER BY umieszczona wewnątrz klauzuli OVER(). Poniżej znajdziesz przykład:
SELECT
id,
RANK() OVER(ORDER BY home_goal) AS rank
FROM match;
W tym ćwiczeniu utworzysz zbiór danych z rankingiem meczów według lig, które średnio zdobywają najwięcej goli w spotkaniu.
To ćwiczenie jest częścią kursu
Data Manipulation in SQL
Instrukcje do ćwiczenia
- Użyj
SELECT, aby pobrać nazwę ligi i średnią łączną liczbę strzelonych goli z tabelleagueimatch. - Uzupełnij funkcję okna tak, aby obliczała
RANK()na podstawie średniej liczby goli strzelonych we wszystkich ligach w bazie danych. - Ustaw ranking
OVERśrednią łączną liczbę goli strzelonych przez gospodarzy i gości.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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 ___;