BMI-categorie per sport
Je wilt begrijpen hoe de BMI verschilt per zomersport. Stel hiervoor een rapport op met het volgende:
- sport, de naam van de zomersport
- bmi_bucket, die de BMI opsplitst in drie groepen:
<.25,.25-.30,>.30 - athletes, het unieke aantal atleten
Definitie: BMI = 100 * weight / (height in het kwadraat).
Let ook op dat CASE-statements rij voor rij worden uitgevoerd, dus de tweede voorwaarde wordt alleen toegepast als de eerste onwaar is. Daardoor heb je geen AND-statement nodig om al eerder genoemde voorwaarden uit te sluiten.
Je mag gerust het E:R-diagram erbij pakken.
Deze oefening maakt deel uit van de cursus
Rapporteren in SQL
Oefeninstructies
- Bouw een query die
summer_gamesenathletesgebruikt omsport,bmi_bucketenathleteste tonen. - Stel zonder
ANDofELSEeenCASE-statement op diebmi_bucketin drie groepen splitst:'<.25','.25-.30'en'>.30'. - Groepeer op de niet-geaggregeerde velden.
- Sorteer het rapport op sport en daarna op athletes in aflopende volgorde.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
-- 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 ____;