【发布时间】:2022-12-13 22:17:56
【问题描述】:
大家好,这是我第一次发布问题,祝我好运, 我在显示年龄组数据时遇到问题,这是我的查询
SELECT
CASE WHEN age BETWEEN 0 AND 18 OR age IS NULL THEN '0-18'
WHEN age BETWEEN 19 AND 30 THEN '19-30'
WHEN age BETWEEN 31 AND 35 THEN '31-35'
WHEN age BETWEEN 36 AND 50 THEN '36-50'
WHEN age BETWEEN 51 AND 100 THEN '50+'
END AS age_group,
COALESCE(COUNT(*), 0) AS count
FROM patient_registration
GROUP BY age_group;
我正在尝试运行上面的查询来显示数据,因为你可以看到上面的查询执行没有任何错误,但我需要一个针对年龄组的解决方案,例如,计数为 0。
我没有 0 到 18 岁之间的年龄记录,它没有显示在输出中,但我想像这样显示记录
age_group count
0-18 0
19-30 192
31-35 83
36-50 223
50+ 222
如果情况不满足我想显示计数 0 有没有我可以尝试的替代方法, 如果我无法正确解释我的问题,请原谅我 enter image description here
我试过这样的方法,但没有用
SELECT
CASE
WHEN age BETWEEN 0 AND 18 OR age COUNT is NULL THEN '0-18'
WHEN age BETWEEN 19 AND 30 THEN '19-30'
WHEN age BETWEEN 31 AND 35 THEN '31-35'
WHEN age BETWEEN 36 AND 50 THEN '36-50'
WHEN age BETWEEN 51 AND 100 THEN '50+'
END AS age_group,
COALESCE(COUNT(*), NULL) AS count
FROM patient_registration
GROUP BY age_group;
【问题讨论】:
-
请分享更多详细信息,例如表结构、示例输入数据、与该数据对应的预期输出以及您解决问题的尝试
-
还有你的 MySQL 版本号
-
合成范围子查询(from-till-name)并将表左连接到它。