自学内容网 自学内容网

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(a) > 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


原文地址:https://blog.csdn.net/lijinxiong520/article/details/143081207

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!