Sous-requêtes dans SELECT pour les calculs
Les sous-requêtes dans SELECT
sont un moyen utile de créer des colonnes calculées dans une requête. Une sous-requête dans SELECT
peut être traitée comme une valeur numérique unique à utiliser dans vos calculs. Lorsque vous écrivez des requêtes dans SELECT
, il est important de se rappeler que le filtrage de la requête principale ne filtre pas la sous-requête, et inversement.
Dans l’exercice précédent, vous avez créé une colonne pour comparer la moyenne des buts totaux de chaque championnat à la moyenne générale des buts pour la saison 2013/2014. Dans cet exercice, vous allez ajouter une colonne qui compare directement ces valeurs en soustrayant la moyenne globale de la sous-requête.
Cet exercice fait partie du cours
Manipulation de données en SQL
Instructions
- Dans la requête principale, sélectionnez la moyenne des buts marqués au cours d’un match pour chaque championnat.
- Dans la sous-requête, sélectionnez la moyenne des buts marqués au cours d’un match pour la saison 2013/2014.
- Soustrayez la sous-requête du nombre moyen de buts calculé pour chaque championnat.
- Filtrez la requête principale afin que seuls les matchs de la saison 2013/2014 soient inclus.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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;