The match is OVER
Met de OVER()-clausule kun je een aggregatiefunctie toepassen over een gegevensset, vergelijkbaar met subquery’s in SELECT. De OVER()-clausule heeft belangrijke voordelen ten opzichte van subquery’s in SELECT — je queries draaien sneller, en OVER() ondersteunt een groot aantal extra functies en clausules die we later in dit hoofdstuk behandelen.
In deze oefening herschrijf je enkele queries uit eerdere hoofdstukken met de OVER()-clausule.
Deze oefening maakt deel uit van de cursus
Gegevens manipuleren in SQL
Oefeninstructies
- Selecteer de wedstrijd-
ID, land-name,season,home_goalenaway_goaluit de tabellenmatchencountry. - Maak de query af die het gemiddelde aantal gescoorde doelpunten over alle rijen berekent en de geaggregeerde waarde vervolgens in elke rij opneemt met een window-functie.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
SELECT
-- Select the match id, country name, season, home, and away goals
___,
c.___ AS country,
m.season,
___.home_goal,
___,
-- Use a window to include the aggregate average in each row
___(___.home_goal + ___) ___ AS overall_avg
FROM match AS m
LEFT JOIN country AS c ON m.country_id = c.id;