CommencezCommencez gratuitement

Filtrer avec des sous-requêtes scalaires

Les sous-requêtes sont extrêmement puissantes pour effectuer des filtres et des transformations complexes. Vous pouvez filtrer des données à partir de valeurs uniques (scalaires) au moyen d'une sous-requête, d'une façon impossible avec des clauses WHERE ou des jointures. Les sous-requêtes servent aussi à des manipulations plus avancées de votre jeu de données. Vous en rencontrerez fort probablement dans tout contexte réel utilisant des bases de données relationnelles.

Dans cet exercice, vous allez produire une liste de matchs où le total de buts marqués (les deux équipes combinées) est supérieur à 3 fois la moyenne des matchs dans la table matches_2013_2014, qui comprend tous les matchs disputés pendant la saison 2013/2014.

Cette activité fait partie du cours

Manipulation de données en SQL

Voir le cours

Instructions de l’exercice

  • Calculez, dans une sous-requête, le triple de la moyenne des buts à domicile + à l'extérieur marqués sur l'ensemble des matchs.
  • Filtrez la requête principale pour ne conserver que les matchs où le total de buts (domicile + extérieur) dépasse la valeur retournée par la sous-requête.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

SELECT 
    date,
	home_goal,
	away_goal
FROM matches_2013_2014
-- Filter for matches where total goals is greater than 3x the average
WHERE (___ + ___) ___ 
       (SELECT ___ * AVG(___ + ___)
        FROM ___); 
Modifier et exécuter le code