CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Créez une requête qui extrait summer_games et athletes pour afficher sport, bmi_bucket et athletes.
  • Sans utiliser AND ni ELSE, montez une instruction CASE qui répartit bmi_bucket en 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 ____;
Modifier et exécuter le code