ІМТ‑кошик за видом спорту
Ви хочете зрозуміти, як ІМТ відрізняється між літніми видами спорту. Для цього підготуйте звіт, який містить:
- sport — назву літнього виду спорту
- bmi_bucket — розбиття ІМТ на три групи:
<.25,.25-.30,>.30 - athletes — кількість унікальних спортсменів
Визначення: BMI = 100 * weight / (height squared).
Зверніть увагу, що вирази CASE обробляються пострічково, тож друга умова застосовується лише тоді, коли перша є хибною. Завдяки цьому немає потреби додавати оператор AND, який виключає вже перевірені умови.
За потреби зверніться до E:R Diagram.
Ця вправа є частиною курсу
Звітування в 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 ____;