1. Apprendre
  2. /
  3. Cours
  4. /
  5. Manipulation de données en SQL

Connected

Exercice

Nettoyer avec des CTE

Au chapitre 2, vous avez produit une liste des pays et du nombre de matchs dans chaque pays où le total des buts dépasse 10. La requête de cet exercice utilisait une sous-requête dans la clause FROM afin de filtrer les matchs avant de les compter dans la requête principale. Voici la requête que vous aviez créée :

SELECT
  c.name AS country,
  COUNT(sub.id) AS matches
FROM country AS c
INNER JOIN (
  SELECT country_id, id 
  FROM match
  WHERE (home_goal + away_goal) >= 10) AS sub
ON c.id = sub.country_id
GROUP BY country;

Vous pouvez énumérer une (ou plusieurs) sous-requêtes comme des expressions de table communes (CTE) en les déclarant avant votre requête principale. C'est un excellent moyen d'organiser l'information et de la présenter dans un ordre logique.

Dans cet exercice, réécrivons une requête semblable à l'aide d'un CTE.

Instructions

100 XP
  • Complétez la syntaxe pour déclarer votre CTE.
  • Sélectionnez country_id et l'identifiant du match id à partir de la table match dans votre CTE.
  • Faites un LEFT JOIN du CTE avec la table league en utilisant country_id.