select a.fenlei, count(*), count(*)/(select count(*) from test)*100 as percentage, constitute<br />
from test a, (select fenlei, group_concat(mc,',',cnt) as constitute from<br />
(select fenlei, mc, count(*) as cnt from test group by 1,2) t group by 1) t1<br />
where a.fenlei=t1.fenlei<br />
group by 1