Sous-requêtes dans SELECT pour des calculs
Les sous-requêtes dans SELECT sont un moyen pratique de créer des colonnes calculées dans une requête. Une sous-requête dans SELECT peut être traitée comme une seule valeur numérique à utiliser dans vos calculs. Lorsque vous écrivez des requêtes avec SELECT, il est important de se rappeler que filtrer la requête principale ne filtre pas la sous-requête — et l'inverse est aussi vrai.
Dans l'exercice précédent, vous avez créé une colonne pour comparer la moyenne de buts totaux de chaque ligue à la moyenne globale de la saison 2013/2014. Dans cet exercice, vous allez ajouter une colonne qui compare directement ces valeurs en soustrayant la moyenne globale issue de la sous-requête.
Cette activité fait partie du cours
Manipulation de données en SQL
Instructions de l’exercice
- Sélectionnez la moyenne de buts marqués par match pour chaque ligue dans la requête principale.
- Sélectionnez la moyenne de buts marqués par match globalement pour la saison
'2013/2014'dans la sous-requête. - Soustrayez la sous-requête de la moyenne de buts calculée pour chaque ligue.
- Filtrez la requête principale pour n'inclure que les matchs de la saison
'2013/2014'.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
SELECT
-- Select the league name and average goals scored
___ AS league,
ROUND(___(___ + m.away_goal),2) AS avg_goals,
-- Subtract the overall average from the league average
ROUND(AVG(___ + m.away_goal) ___
(SELECT ___(___ + away_goal)
FROM match
WHERE ___ = ___),2) AS diff
FROM league AS l
LEFT JOIN match AS m
ON l.country_id = m.country_id
-- Only include 2013/2014 results
WHERE ___ = ___
GROUP BY l.name;