Fasce di BMI per sport
Vuoi capire come varia il BMI per ciascuno sport estivo. Per rispondere, prepara un report che contenga:
- sport, il nome dello sport estivo
- bmi_bucket, che suddivide il BMI in tre gruppi:
<.25,.25-.30,>.30 - athletes, ovvero il numero univoco di atleti
Definizione: BMI = 100 * weight / (height al quadrato).
Nota anche che le istruzioni CASE vengono eseguite riga per riga, quindi la seconda condizione si applica solo se la prima è falsa. Questo significa che non hai bisogno di un'istruzione AND per escludere condizioni già considerate.
Se vuoi, consulta l’E:R Diagram.
Questo esercizio fa parte del corso
Reportistica in SQL
Istruzioni dell'esercizio
- Crea una query che prelevi da
summer_gameseathletesper mostraresport,bmi_bucketeathletes. - Senza usare
ANDoELSE, imposta un'istruzioneCASEche suddividabmi_bucketin tre gruppi:'<.25','.25-.30'e'>.30'. - Raggruppa per i campi non aggregati.
- Ordina il report per sport e poi per atleti in ordine decrescente.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
-- 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 ____;