mysql group by 比例_SQL 在使用 GROUP BY 进行归类汇总的时候直接获取总数

SQL 中我们一般使用 GROUP BY 进行归类汇总,比如微信机器人高级版对消息类型中进行汇总的 SQL 为:

SELECT COUNT( * ) AS count, MsgType FROM wp_weixin_messages GROUP BY MsgType

如果按照数量排序:

SELECT COUNT( * ) AS count, MsgType FROM wp_weixin_messages GROUP BY MsgType ORDER BY count DESC

如果要计算每种类型的比例,又要使用一条新的 SQL 到数据库里面查询一次,有没有办法在使用 GROUP BY 进行归类汇总的时候直接获取总数,查询了下 MySQL 的说明文档,我们可以使用 WITH ROLLUP。

SELECT COUNT( * ) AS count, MsgType FROM wp_weixin_messages GROUP BY MsgType WITH ROLLUP

这样获取的一个字段就是总数,但是名称(MsgType)为 null,我们把他设置为 total。

SELECT COUNT( * ) AS count, IFNULL( MsgType, 'total' ) AS MsgType FROM wp_weixin_messages GROUP BY MsgType WITH ROLLUP

但是使用 WITH ROLLUP 有个不好的地方,不能在进行 ORDER BY 了。

©我爱水煮鱼,本站推荐使用的主机:

本站长期承接 WordPress 优化和建站业务,要求很高,有兴趣请联系微信:「chenduopapa」或微信公众号:「WordPress果酱」。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值