distinct 和 group by

最近生产加了一个新字段 a、然后将主键赋值给 a

然后投产后验证是否有漏网之鱼。当时使用的是

select count(distinct pk),count(distinct a) from tableName

当时在想这样子跟 group by 有啥区别

select a from tableName group by a having count(*) > 1

所以查一下两者的差异
在这里插入图片描述
用法啥的就不介绍了
看完几篇文章的结论就是

  • 单纯去重而已、两者并无差异、无论是功能上和性能上。至于 mysql 8.0 之前 group by 默认会进行 order by 、这个时候我们可以 order by null 。那么它跟 distinct 就无差异了。mysql 8.0 更加无差异了
  • group by 可以跟聚合函数一起使用、适用的场景必然比 distinct 广
  • group by 本身就是分组的意思、将数据分组、然后想对这些组干嘛就干嘛

真实业务场景下推荐使用 group by

当然日常查数啥的、那个方便就那个、那个顺手就哪个呗

https://www.javacn.site/interview/mysql/groupby-vs-distinct.html
https://dev.mysql.com/doc/refman/8.0/en/distinct-optimization.html
https://www.cnblogs.com/crazymakercircle/p/17455500.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值