SELECT
CASE
WHEN age IS NULL THEN
'未知'
WHEN age < 20 THEN
'小于20岁'
WHEN age >= 20
AND age < 30 THEN
'20岁到30岁'
WHEN age >= 30
AND age < 40 THEN
'30岁到40岁'
WHEN age >= 40
AND age < 50 THEN
'40岁到50岁'
WHEN age >= 50 THEN
'50岁以上'
END AS 年龄段,
count(*) AS 人数
FROM
user
GROUP BY
CASE
WHEN age IS NULL THEN
'未知'
WHEN age < 20 THEN
'小于20岁'
WHEN age >= 20
AND age < 30 THEN
'20岁到30岁'
WHEN age >= 30
AND age < 40 THEN
'30岁到40岁'
WHEN age >= 40
AND age < 50 THEN
'40岁到50岁'
WHEN age >= 50 THEN
'50岁以上'
END;
运行结果: