MySQL分组统计个数并计算百分比 |
您所在的位置:网站首页 › 分组查询统计个数 › MySQL分组统计个数并计算百分比 |
业务场景:经常有分组后计算各类型数量及所占百分比的需求,但是分完组后拿不到原来整体的数据 person表结构,一共10条数据 现在要统计各种爱好的数量及所占百分比 方式一:也是我一开始使用的方式,但如果只对原表操作还好,如果对子查询形成的临时表在进行统计总个数,是怎么也求不出来 select hobby,count(hobby) number,ROUND(count(hobby)/(select count(hobby) from person),2) proportion from person GROUP BY hobby方式二:使用join select p1.hobby,p1.number,ROUND(number/num,2) proportion from (select hobby,count(hobby) number from person group by hobby) p1 join (select count(hobby) num from person) p2 on 1=1方式三:使用窗口函数sum() over(),推荐这种方式 select hobby,count(hobby) number,ROUND(count(hobby)/sum(count(hobby))over(),2) proportion from person GROUP BY hobby select tt.hobby,tt.number,ROUND(number/sum(tt.number)over(),2) proportion from (select hobby,count(hobby) number from person group by hobby) as tt这三种方式都能达到效果
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |