业务场景:需要对系统中员工年龄分布进行数据统计分析。
select
age_temp,
count(*) as total ,
CONCAT(round(count(*)/(select count(*)from people_baseinfo)*100,2),'%') as rate
from (
select age,
case
when age IS NULL OR age = '' then '未知'
when age between 18 and 24 then '18-24岁'
when age between 25 and 29 then '25-29岁'
when age between 30 and 39 then '30-39岁'
when age between 40 and 49 then '40-49岁'
when age >49 then '50岁+'
end as age_temp
from people_baseinfo
)t_user
group by age_temp
期待结果