Filteren met scalare subquery's
Subquery's zijn enorm krachtig voor complexe filters en transformaties. Je kunt met een subquery filteren op enkele (scalare) waarden op een manier die niet kan met WHERE-clausules of joins. Subquery's kun je ook gebruiken voor geavanceerdere bewerkingen op je gegevensset. In vrijwel elke praktijkomgeving met relationele databases kom je subquery's tegen.
In deze oefening maak je een lijst van wedstrijden waarbij het totaal aantal doelpunten (voor beide teams samen) meer is dan 3 keer het gemiddelde voor alle wedstrijden in de tabel matches_2013_2014, die alle wedstrijden uit het seizoen 2013/2014 bevat.
Deze oefening maakt deel uit van de cursus
Gegevens manipuleren in SQL
Oefeninstructies
- Bereken in een subquery drie keer het gemiddelde aantal thuis + uit doelpunten over alle wedstrijden.
- Filter de hoofdquery op wedstrijden waar het totaal aantal doelpunten (thuis + uit doelpunten) hoger is dan de waarde uit de subquery.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
SELECT
date,
home_goal,
away_goal
FROM matches_2013_2014
-- Filter for matches where total goals is greater than 3x the average
WHERE (___ + ___) ___
(SELECT ___ * AVG(___ + ___)
FROM ___);