Kom igångKom igång gratis

BMI-grupp per sport

Målet är att förstå hur BMI varierar mellan olika sommargrenar. Skapa en rapport som innehåller följande:

  • sport, det vill säga namnet på sommargrenen
  • bmi_bucket, som delar in BMI i tre grupper: <.25, .25-.30, >.30
  • athletes, det vill säga det unika antalet idrottare

Definition: BMI = 100 * vikt / (längd i kvadrat).

Observera även att CASE-satser körs rad för rad, vilket innebär att det andra villkoret bara tillämpas om det första är falskt. Det betyder att du inte behöver en AND-sats för att utesluta redan hanterade villkor.

Du kan referera till E:R-diagrammet vid behov.

Den här övningen är en del av kursen

Rapportering i SQL

Visa kurs

Övningsinstruktioner

  • Bygg en fråga som hämtar data från summer_games och athletes för att visa sport, bmi_bucket och athletes.
  • Utan att använda AND eller ELSE, skapa en CASE-sats som delar in bmi_bucket i tre grupper: '<.25', '.25-.30' och '>.30'.
  • Gruppera efter de icke-aggregerade fälten.
  • Sortera rapporten efter sport och sedan efter antal idrottare i fallande ordning.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

-- 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 ____;
Redigera och kör kod