LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Erstelle eine Abfrage, die aus summer_games und athletes zieht und sport, bmi_bucket und athletes anzeigt.
  • Richte ohne AND oder ELSE eine CASE-Anweisung ein, die bmi_bucket in 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 ____;
Code bearbeiten und ausführen