题解 | #计算25岁以上和以下的用户数量#

计算25岁以上和以下的用户数量

https://www.nowcoder.com/practice/30f9f470390a4a8a8dd3b8e1f8c7a9fa

题目解析

题目描述

运营团队希望将用户按照年龄划分为两个年龄段:25岁以下25岁及以上。同时,需要统计每个年龄段的用户数量。需要注意的是,年龄(age)为 NULL 的用户也应被归类为25岁以下

SQL 代码

-- 选择并划分年龄段,统计每个年龄段的用户数量
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 语句实现自定义排序。
全部评论
group by中可以使用别名吗
点赞 回复 分享
发布于 04-29 10:51 北京

相关推荐

评论
7
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务