SELECT
age_t AS '年龄',
sum(CASE WHEN sex = '男' THEN 1 ELSE 0 END) / count(1) AS 'boy_pt',
sum(CASE WHEN sex = '女' THEN 1 ELSE 0 END) / count(1) AS 'girl_pt' -- count(*) as '人数'
FROM
(
SELECT
badge,
sex,
CASE
WHEN age >= 0
AND age <= 4 THEN
'0-4'
WHEN age >= 5
AND age <= 9 THEN
'5-9'
WHEN age >= 10
AND age <= 14 THEN
'10-14'
WHEN age >= 15
AND age <= 19 THEN
'15-19'
END AS age_t
FROM
tablename
) k
GROUP BY
age_t
-----------------
按照这个语法分组即可;
-- 分组没有分完,自己补充完整即可;
-- 目前只分到了15-19,其它组自行补充;