Zacznij terazZacznij za darmo

Przedziały BMI według dyscypliny sportowej

Chcesz sprawdzić, jak BMI różni się w zależności od letniej dyscypliny sportowej. Przygotuj raport zawierający następujące kolumny:

  • sport – nazwa letniej dyscypliny sportowej
  • bmi_bucket – BMI podzielone na trzy grupy: <.25, .25-.30, >.30
  • athletes – liczba unikalnych sportowców

Definicja: BMI = 100 * waga / (wzrost do kwadratu).

Pamiętaj, że instrukcja CASE działa wiersz po wierszu – drugi warunek jest sprawdzany tylko wtedy, gdy pierwszy jest fałszywy. Dzięki temu nie musisz używać AND do wykluczania wcześniej uwzględnionych warunków.

Możesz skorzystać z diagramu E:R.

To ćwiczenie jest częścią kursu

Raportowanie w SQL

Zobacz kurs

Instrukcje do ćwiczenia

  • Napisz zapytanie pobierające dane z summer_games i athletes, które zwróci kolumny sport, bmi_bucket oraz athletes.
  • Bez użycia AND ani ELSE utwórz instrukcję CASE, która podzieli kolumnę bmi_bucket na trzy grupy: '<.25', '.25-.30' i '>.30'.
  • Grupuj według pól, które nie są agregowane.
  • Posortuj raport według dyscypliny sportowej, a następnie według liczby sportowców malejąco.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

-- 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 ____;
Edytuj i uruchom kod