Categorii IMC pe sport
Vrei să înțelegi cum variază IMC-ul în funcție de fiecare sport de vară. Pentru aceasta, creează un raport care să conțină:
- sport – numele sportului de vară
- bmi_bucket – împarte IMC-ul în trei grupuri:
<.25,.25-.30,>.30 - athletes – numărul unic de atleți
Definiție: IMC = 100 * greutate / (înălțime la pătrat).
Reține că instrucțiunile CASE se aplică rând cu rând, deci a doua condiție este evaluată doar dacă prima este falsă. Prin urmare, nu ai nevoie de o instrucțiune AND pentru a exclude condițiile deja menționate.
Poți consulta Diagrama E:R ca referință.
Acest exercițiu face parte din cursul
Raportare în SQL
Instrucțiuni pentru exercițiu
- Construiește o interogare care extrage date din
summer_gamesșiathletespentru a afișasport,bmi_bucketșiathletes. - Fără să folosești
ANDsauELSE, creează o instrucțiuneCASEcare împartebmi_bucketîn trei grupuri:'<.25','.25-.30'și'>.30'. - Grupează rezultatele după câmpurile neagregate.
- Ordonează raportul după sport, apoi după numărul de atleți în ordine descrescătoare.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
-- 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 ____;