開始使用免費開始

各運動的 BMI 分佈

你想了解各個夏季運動之間的 BMI 有何差異。為了回答這個問題,請建立一份報表,包含以下欄位:

  • sport:夏季運動的名稱
  • bmi_bucket:將 BMI 分成 3 組:<.25.25-.30>.30
  • athletes:運動員的唯一人數

定義:BMI = 100 * weight /(height 的平方)。

另外請注意,CASE 陳述會逐列執行,因此只有在第一個條件為假時,第二個條件才會被套用。這表示你不需要使用 AND 來排除已經涵蓋的條件。

如需參考,請查看 E:R Diagram

本練習屬於課程

SQL 報表製作

檢視課程

練習說明

  • 建立一個查詢,從 summer_gamesathletes 擷取資料,輸出 sportbmi_bucketathletes
  • 在不使用 ANDELSE 的情況下,設定一個 CASE 陳述,將 bmi_bucket 分成 3 組:'<.25''.25-.30''>.30'
  • 以未彙總的欄位進行分組。
  • 依 sport,然後以 athletes 由大到小排序報表。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

-- 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 ____;
編輯並執行程式碼