SELECT age_cut,COUNT(*) -- 展示字段 FROM ( SELECT CASE WHEN age >= 25 THEN '25岁及以上' WHEN age IS NULL THEN '25岁以下' WHEN age < 25 THEN '25岁以下' END AS age_cut /*这里因为是二元条件,直接使用IF或者 CASE WHEN...THEN...ELSE会更加简洁,但是用3个WHEN可读性更强,更易于维护*/ FROM user_profile) AS 整理后的表 -- 因为GROUP BY在SELECT之前运行,所以需要先对age_cut进行定义 GROUP BY age_cut -- 按照age_cut分组 ORDER BY age_cut ; -- 按照age_cut升序

京公网安备 11010502036488号