CommencerCommencer gratuitement

Tranche d’IMC par sport

Vous cherchez à comprendre comment l’IMC varie selon chaque sport d’été. Pour y répondre, créez un rapport contenant :

  • sport, le nom du sport d’été
  • bmi_bucket, qui regroupe l’IMC en trois catégories : <.25, .25-.30, >.30
  • athletes, le nombre d’athlètes uniques

Définition : IMC = 100 * weight / (height au carré).

Notez également que les instructions CASE s’exécutent ligne par ligne : la deuxième condition n’est évaluée que si la première est fausse. Vous n’avez donc pas besoin d’un AND pour exclure les conditions déjà testées.

N’hésitez pas à consulter le schéma E:R.

Cet exercice fait partie du cours

Réaliser des rapports en SQL

Afficher le cours

Instructions

  • Écrivez une requête qui extrait sport, bmi_bucket et athletes à partir de summer_games et athletes.
  • Sans utiliser AND ni ELSE, créez 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 nombre d’athlètes en ordre décroissant.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

-- 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