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

如何编写SQL查询按指定年龄组统计用户数量并升序展示

按指定年龄区间分组统计用户数量

假设你的用户表名为users,存储年龄的字段为age,可以通过以下SQL实现需求:

SELECT
  age_group,
  COUNT(*) AS user_count
FROM (
  SELECT
    CASE
      WHEN age BETWEEN 0 AND 10 THEN '[0-10]'
      WHEN age BETWEEN 11 AND 20 THEN '[11-20]'
      WHEN age BETWEEN 21 AND 30 THEN '[21-30]'
      WHEN age BETWEEN 31 AND 40 THEN '[31-40]'
      WHEN age BETWEEN 41 AND 50 THEN '[41-50]'
      WHEN age BETWEEN 51 AND 60 THEN '[51-60]'
      WHEN age > 60 THEN '[61+]'
      ELSE '未知'
    END AS age_group
  FROM users
) AS grouped_data
GROUP BY age_group
ORDER BY
  CASE age_group
    WHEN '[0-10]' THEN 1
    WHEN '[11-20]' THEN 2
    WHEN '[21-30]' THEN 3
    WHEN '[31-40]' THEN 4
    WHEN '[41-50]' THEN 5
    WHEN '[51-60]' THEN 6
    WHEN '[61+]' THEN 7
    ELSE 8
  END;

说明:

  1. 内层子查询通过CASE语句将每个用户的年龄匹配到对应的分组标签,同时处理了年龄为空、负数等异常情况,将其归为“未知”组;
  2. 外层查询按分组标签分组,用COUNT(*)统计每组的用户总数;
  3. ORDER BY中的CASE语句用于强制分组按指定顺序升序排列,避免直接按字符串排序导致的顺序混乱。

内容的提问来源于stack exchange,提问作者ddoch003

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 08:33:22