Catégorie d'IMC par sport
Vous voulez comprendre comment l'IMC varie selon chaque sport d'été. Pour y répondre, préparez un rapport qui contient :
- sport, soit le nom du sport d'été
- bmi_bucket, qui répartit l'IMC en trois groupes :
<.25,.25-.30,>.30 - athletes, soit le nombre unique d'athlètes
Définition : IMC = 100 * weight / (height au carré).
Notez aussi que les instructions CASE s'exécutent ligne par ligne ; ainsi, la deuxième condition ne s'applique que si la première est fausse. Vous n'avez donc pas besoin d'un AND pour exclure des conditions déjà mentionnées.
N'hésitez pas à consulter le diagramme E/R.
Cette activité fait partie du cours
Création de rapports en SQL
Instructions de l’exercice
- Créez une requête qui extrait
summer_gamesetathletespour affichersport,bmi_bucketetathletes. - Sans utiliser
ANDniELSE, montez une instructionCASEqui répartitbmi_bucketen trois groupes :'<.25','.25-.30'et'>.30'. - Regroupez par les champs non agrégés.
- Triez le rapport par sport, puis par athletes en ordre décroissant.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
-- Pull in sport, bmi_bucket, and athletes
SELECT
____,
-- Bucket BMI in three groups: <.25, .25-.30, and >.30
CASE WHEN ____ THEN '<.25'
WHEN ____ THEN '.25-.30'
WHEN ____ THEN '>.30' END AS bmi_bucket,
____ AS athletes
FROM ____ AS s
JOIN ____ AS a
ON ____
-- GROUP BY non-aggregated fields
GROUP BY ____
-- Sort by sport and then by athletes in descending order
ORDER BY ____;