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
Instrukcje do ćwiczenia
- Napisz zapytanie pobierające dane z
summer_gamesiathletes, które zwróci kolumnysport,bmi_bucketorazathletes. - Bez użycia
ANDaniELSEutwórz instrukcjęCASE, która podzieli kolumnębmi_bucketna 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 ____;