题意明确:

将用户划分为20岁以下,20-24岁,25岁及以上三个年龄段,分别查看不同年龄段用户的明细情况,年龄为空输出为其他


问题分解:

  • 限定条件:无;
  • 划分年龄段:数值条件判断,可以用多重if,不过更方便的是用case when [expr] then [result1]...else [default] end
  • 附:case when用法

细节问题:

  • 表头重命名:as
  • 输出的段明文在题目描述和输出示例中不一致,以输出示例为准

完整代码:

select
    device_id,
    gender,
    case
        when age>=25 then '25岁及以上'
        when age>=20 then '20-24岁'
        when age<20 then '20岁以下'
        else '其他'
    end as age_cut
from user_profile