MySQL分组统计个数并计算百分比

您所在的位置:网站首页 分组查询统计个数 MySQL分组统计个数并计算百分比

MySQL分组统计个数并计算百分比

2024-07-11 22:37| 来源: 网络整理| 查看: 265

业务场景:经常有分组后计算各类型数量及所占百分比的需求,但是分完组后拿不到原来整体的数据

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

这三种方式都能达到效果

在这里插入图片描述 参考博客:https://blog.csdn.net/qq_45752401/article/details/125748211



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3