开始使用免费开始使用

按运动划分的 BMI 分组

您想了解各个夏季项目的 BMI 有何差异。为此,请搭建一个包含以下内容的报告:

  • sport:夏季运动项目名称
  • bmi_bucket:将 BMI 分为 3 组:<.25.25-.30>.30
  • athletes:运动员的唯一人数

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

另请注意,CASE 语句是按行执行的,因此只有在第一个条件为假时才会应用第二个条件。这样就不需要使用 AND 来排除已覆盖的条件。

如需参考,请查看 E:R 图

本练习是课程的一部分

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 ____;
编辑并运行代码