Категории ИМТ по видам спорта
Вам предстоит изучить, как индекс массы тела (ИМТ) различается в зависимости от летнего вида спорта. Для этого подготовьте отчёт со следующими полями:
- sport — название летнего вида спорта
- bmi_bucket — ИМТ, разбитый на три группы:
<.25,.25-.30,>.30 - athletes — уникальное количество спортсменов
Определение: ИМТ = 100 * вес / (рост в квадрате).
Обратите внимание: оператор CASE обрабатывает строки последовательно, поэтому второе условие проверяется только в том случае, если первое оказалось ложным. Это означает, что вам не нужно использовать оператор AND для исключения уже учтённых условий.
При необходимости обратитесь к диаграмме связей.
Это упражнение является частью курса
Отчётность в SQL
Инструкции к упражнению
- Составьте запрос, который обращается к таблицам
summer_gamesиathletesи выводит поляsport,bmi_bucketиathletes. - Не используя
ANDилиELSE, создайте операторCASE, который разбиваетbmi_bucketна три группы:'<.25','.25-.30'и'>.30'. - Сгруппируйте результаты по неагрегированным полям.
- Отсортируйте отчёт сначала по виду спорта, затем по количеству спортсменов в порядке убывания.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
-- 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 ____;