Wat is hier OVER?
Met windowfuncties kun je een RANK maken van informatie op basis van elke variabele die je wilt gebruiken om je gegevens te sorteren. Als je dit instelt, moet je aangeven welke kolom/berekening je wilt gebruiken om je rang te bepalen. Dit doe je door een ORDER BY-clausule op te nemen binnen de OVER()-clausule. Hieronder staat een voorbeeld:
SELECT
id,
RANK() OVER(ORDER BY home_goal) AS rank
FROM match;
In deze oefening maak je een gegevensset van gerangschikte wedstrijden op basis van welke competities gemiddeld de meeste doelpunten in een wedstrijd scoren.
Deze oefening maakt deel uit van de cursus
Gegevens manipuleren in SQL
Oefeninstructies
SELECTde competitienaam en het gemiddelde totaal aantal gescoorde doelpunten uitleagueenmatch.- Maak de windowfunctie af zodat deze de
RANK()berekent van het gemiddelde aantal doelpunten over alle competities in de database. - Orden de rang
OVERhet gemiddelde totaal van thuis- en uitdoelpunten.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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 ___;