题目解析
题目描述
运营团队希望将用户按照年龄划分为三个年龄段:20岁以下、20-24岁、25岁及以上,并分别查看不同年龄段用户的明细情况。需要从 user_profile
表中取出相应的数据。需要注意的是,若年龄为空,请返回其他。
SQL 查询
-- 选择并划分年龄段,输出 device_id、gender 和 age_cut
SELECT
device_id,
gender,
CASE
WHEN age IS NULL THEN '其他' -- 年龄为空,归类为其他
WHEN age < 20 THEN '20岁以下' -- 年龄小于20岁
WHEN age BETWEEN 20 AND 24 THEN '20-24岁' -- 年龄在20至24岁之间
WHEN age >= 25 THEN '25岁及以上' -- 年龄大于等于25岁
END AS age_cut
FROM
user_profile
代码解释
CASE WHEN
语句:WHEN age IS NULL THEN '其他'
:如果age
字段为空 (NULL
),则将该用户归类为'其他'
。WHEN age < 20 THEN '20岁以下'
:如果age
小于 20 岁,归类为'20岁以下'
。- 其他同理
END AS age_cut
:将上述分类结果命名为age_cut
。