You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server:如何实现按自定义年龄段分组统计count(*)结果

SQL Server 自定义年龄段用户数统计实现方案

核心实现逻辑

使用CASE表达式自定义年龄分组规则,再按分组结果聚合计数即可完成需求。

基础实现代码(仅展示有用户的分组)

SELECT
  [Age group] = CASE
    WHEN Age < 18 THEN '<18'
    WHEN Age BETWEEN 19 AND 34 THEN '19-34'
    WHEN Age BETWEEN 35 AND 75 THEN '35-75'
    WHEN Age > 75 THEN '>75'
    ELSE '年龄未知' -- 可选,处理Age为NULL的异常情况
  END,
  [Count] = COUNT(1)
FROM Users
GROUP BY CASE
  WHEN Age < 18 THEN '<18'
  WHEN Age BETWEEN 19 AND 34 THEN '19-34'
  WHEN Age BETWEEN 35 AND 75 THEN '35-75'
  WHEN Age > 75 THEN '>75'
  ELSE '年龄未知'
END

进阶实现代码(展示所有预设分组,含用户数为0的分组)

如果需要即使分组下没有用户,也在结果中显示计数为0,可以先构造全部分组再左关联用户表:

SELECT
  group_list.[Age group],
  [Count] = COUNT(Users.Age)
FROM (
  -- 预设所有需要展示的年龄段
  VALUES ('<18'), ('19-34'), ('35-75'), ('>75'), ('年龄未知')
) AS group_list([Age group])
LEFT JOIN Users
  ON group_list.[Age group] = CASE
    WHEN Users.Age < 18 THEN '<18'
    WHEN Users.Age BETWEEN 19 AND 34 THEN '19-34'
    WHEN Users.Age BETWEEN 35 AND 75 THEN '35-75'
    WHEN Users.Age > 75 THEN '>75'
    ELSE '年龄未知'
  END
GROUP BY group_list.[Age group]

说明

你可以根据实际业务需求调整CASE表达式中的区间边界,或者增减分组规则即可适配不同的统计要求。

内容的提问来源于stack exchange,提问作者Keras-JOB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 04:57:03