ALL the subqueries EVERYWHERE
In voetbalcompetities worden wedstrijden in verschillende stages gespeeld. Winnende teams gaan van de ene stage naar de volgende, totdat ze de finalestage bereiken. In elke stage staan er meer belangen op het spel dan in de vorige. De tabel match bevat gegevens over de verschillende stages waarin elke wedstrijd is gespeeld.
In de komende 3 oefeningen bouw je één query met een subquery in elk van de clausules SELECT, FROM en WHERE. Verandert het gemiddelde aantal gescoorde doelpunten naarmate de inzet hoger wordt van de ene stage naar de volgende?
De query herhaalt één subquery zodat je elke plaatsing kunt oefenen. Elke kopie leest de tabel match opnieuw, dus in je eigen werk zou je het algemene gemiddelde één keer berekenen, zoals in hoofdstuk 4 wordt getoond met een vensterfunctie.
Deze oefening maakt deel uit van de cursus
Gegevens manipuleren in SQL
Oefeninstructies
- Haal het gemiddelde aantal totale doelpunten op in een
SELECT-subquery. - Bereken de gemiddelde totale doelpunten voor de specifieke
stagein de hoofdquery. - Filter zowel de subquery's als de hoofdquery zodat alleen gegevens uit het seizoen 2012/2013 zijn opgenomen.
GROUPde query op de kolomm.stage.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
SELECT
-- Select the stage and average goals for each stage
m.stage,
ROUND(___(___ + m.away_goal),2) AS avg_goals,
-- Select the average overall goals for the 2012/2013 season
ROUND((SELECT ___(___ + away_goal)
FROM match
WHERE season = ___),2) AS overall
FROM match AS m
-- Filter for the 2012/2013 season
WHERE ___ = ___
-- Group by stage
GROUP BY ___;