题解 | 计算25岁以上和以下的用户数量
计算25岁以上和以下的用户数量
https://www.nowcoder.com/practice/30f9f470390a4a8a8dd3b8e1f8c7a9fa
select case when age<25 or age is null then '25岁以下' else '25岁及以上' end as age_cut, count(*) as number from user_profile group by age_cut order by case when age_cut='25岁以下' then 1 else 2 end;
【好难——————】
- SELECT 子句:使用 CASE WHEN 语句来判断 age 字段:如果 age 小于25岁或为 NULL,则将其归类为 '25岁以下'。否则,归类为 '25岁及以上'。为划分后的结果命名为 age_cut。使用 COUNT(*) 统计每个年龄段的用户数量,并命名为 number。
- FROM 子句:指定数据来源为 user_profile 表。
- GROUP BY 子句:按照划分后的 age_cut 进行分组,以便统计每个组的用户数量。
- ORDER BY 子句:根据需求,将 '25岁以下' 的结果排在前面,'25岁及以上' 的结果排在后面。通过 CASE WHEN 语句实现自定义排序。