Verder bouwen op subquery’s in FROM
In de vorige oefening ontdekte je dat Engeland, Nederland, Duitsland en Spanje de enige landen waren met wedstrijden in de database waarin in totaal 10 of meer doelpunten zijn gescoord. Laten we meer details over die wedstrijden opzoeken: wanneer ze zijn gespeeld, in welke seizoenen, en hoeveel doelpunten thuis versus uit zijn gemaakt.
Je ziet in deze oefening dat de tabelalias is weggelaten voor elke kolom die in de hoofdquery wordt geselecteerd. Dat komt omdat de hoofdquery gegevens haalt uit de subquery, die wordt behandeld als één enkele tabel.
Deze oefening maakt deel uit van de cursus
Gegevens manipuleren in SQL
Oefeninstructies
- Maak de subquery in de
FROM-clausule af. Selecteer de landen-nameuit de tabelcountry, samen met de kolommendate,home_goal,away_goalentotal_goalsuit de tabelmatch. - Maak in de subquery een kolom die thuis- en uitdoelpunten optelt, genaamd
total_goals. Deze wordt gebruikt om de hoofdquery te filteren. - Selecteer in de hoofdquery
country,date,home_goalenaway_goal. - Filter de hoofdquery op wedstrijden met 10 of meer totale doelpunten.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
SELECT
-- Select country, date, home, and away goals from the subquery
___,
date,
___,
away_goal
FROM
-- Select country name, date, home_goal, away_goal, and total goals in the subquery
(SELECT ___ AS country,
m.date,
___,
m.away_goal,
(___ + m.away_goal) AS total_goals
FROM match AS m
LEFT JOIN country AS c
ON m.country_id = c.id) AS subq
-- Filter by total goals scored in the main query
WHERE total_goals ___ ___;