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
Övningsinstruktioner
- Bygg en fråga som hämtar data från
summer_gamesochathletesför att visasport,bmi_bucketochathletes. - Utan att använda
ANDellerELSE, skapa enCASE-sats som delar inbmi_bucketi 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 ____;