Requête UNION puis JOIN
Votre objectif est de créer le même rapport que précédemment, qui contient les champs suivants :
- season, qui renvoie soit
summersoitwinter - country
- events, qui affiche le nombre d’épreuves uniques
Dans cet exercice, créez la requête en utilisant l’approche UNION d’abord, JOIN ensuite. Avec cette approche, vous devrez utiliser la requête UNION initiale comme sous-requête. La sous-requête devra inclure tous les champs pertinents, y compris ceux utilisés dans une jointure.
Comme toujours, n’hésitez pas à consulter le diagramme E‑R.
Cet exercice fait partie du cours
Réaliser des rapports en SQL
Instructions
- Dans la sous-requête, construisez une requête qui renvoie
season,country_ideteventen combinant les Jeux d’été et d’hiver avec unUNION ALL. - Utilisez un
JOINet une autre instructionSELECTpour afficher les champsseason,countryet le nombre unique d’events. - Appliquez
GROUP BYà tous les champs non agrégés. - Triez le rapport par
eventsdans l’ordre décroissant.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
-- Add outer layer to pull season, country and unique events
SELECT
____,
____,
____ AS events
FROM
-- Pull season, country_id, and event for both seasons
(SELECT
____ AS season,
____,
____
FROM ____
____
SELECT
____ AS season,
____,
____
FROM ____) AS subquery
JOIN ____ AS c
ON ____
-- Group by any unaggregated fields
GROUP BY ____
-- Order to show most events at the top
ORDER BY ____;