Aller plus loin avec les sous‑requêtes dans FROM
Dans l'exercice précédent, vous avez constaté que l'Angleterre, les Pays‑Bas, l'Allemagne et l'Espagne étaient les seuls pays ayant des matchs dans la base de données où 10 buts ou plus ont été marqués au total. Voyons maintenant quelques détails sur ces matchs — à quel moment ils ont eu lieu, au cours de quelles saisons, et combien de buts ont été marqués à domicile par rapport à l'extérieur.
Vous remarquerez que, dans cet exercice, l'alias de table est omis pour chaque colonne sélectionnée dans la requête principale. C'est parce que la requête principale extrait ses données de la sous‑requête, qui est traitée comme une seule table.
Cette activité fait partie du cours
Manipulation de données en SQL
Instructions de l’exercice
- Complétez la sous‑requête dans la clause
FROM. Sélectionnez lenamedu pays à partir de la tablecountry, ainsi que les colonnesdate,home_goal,away_goalettotal_goalsde la tablematch. - Créez, dans la sous‑requête, une colonne qui additionne les buts à domicile et à l'extérieur, appelée
total_goals. Elle servira à filtrer la requête principale. - Sélectionnez
country,date,home_goaletaway_goaldans la requête principale. - Filtrez la requête principale pour les matchs avec 10 ou plus de buts au total.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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 ___ ___;