Des SOUS‑REQUÊTES PARTOUT
Dans les ligues de soccer, les matchs se déroulent à différentes étapes (stages). Les équipes gagnantes passent d'une étape à l'autre jusqu'à la finale. À chaque étape, l'enjeu devient plus élevé que lors de la précédente. La table match contient des données sur les différentes étapes où chaque match a eu lieu.
Au fil des 3 prochains exercices, vous allez construire une seule requête qui contient une sous‑requête dans chacune des clauses SELECT, FROM et WHERE. Le nombre moyen de buts marqués change‑t‑il lorsque les enjeux augmentent d'une étape à l'autre?
La requête répète une même sous‑requête pour vous permettre de vous exercer à chaque emplacement. Chaque copie relit la table match; dans votre propre travail, vous calculeriez la moyenne globale une seule fois, comme le montre le chapitre 4 avec une fonction de fenêtre.
Cette activité fait partie du cours
Manipulation de données en SQL
Instructions de l’exercice
- Extraire le nombre moyen de buts totaux dans une sous‑requête de
SELECT. - Calculer le nombre moyen de buts totaux pour l'
stageprécis dans la requête principale. - Filtrer les deux sous‑requêtes et la requête principale pour n'inclure que les données de la saison 2012/2013.
GROUPla requête par la colonnem.stage.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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 ___;