BMI-Bucket nach Sportart
Du möchtest verstehen, wie sich der BMI je Sommersportart unterscheidet. Richte dafür einen Bericht ein, der Folgendes enthält:
- sport, den Namen der Sommersportart
- bmi_bucket, das den BMI in drei Gruppen aufteilt:
<.25,.25-.30,>.30 - athletes, die eindeutige Anzahl an Athletinnen und Athleten
Definition: BMI = 100 * weight / (height squared).
Beachte außerdem, dass CASE-Anweisungen zeilenweise ausgeführt werden. Die zweite Bedingung wird also nur geprüft, wenn die erste falsch ist. Dadurch brauchst du keine AND-Bedingung, die bereits genannte Fälle ausschließt.
Du kannst gern auf das E:R-Diagramm verweisen.
Diese Übung ist Teil des Kurses
Reporting in SQL
Anleitung zur Übung
- Erstelle eine Abfrage, die aus
summer_gamesundathleteszieht undsport,bmi_bucketundathletesanzeigt. - Richte ohne
ANDoderELSEeineCASE-Anweisung ein, diebmi_bucketin drei Gruppen aufteilt:'<.25','.25-.30'und'>.30'. - Gruppiere nach den nicht aggregierten Feldern.
- Sortiere den Bericht nach sport und dann nach athletes in absteigender Reihenfolge.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
-- 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 ____;