CommencezCommencez gratuitement

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

Voir le cours

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;
Modifier et exécuter le code