MySQL 5.7 子查询,分组,排序,count distinct时,分组失效问题

本文是一篇记录文章,不说废话,也不讨论深层原因,给大家提供一个解决问题的方法
正如题目关键字所言,最近在工作中遇到一个匪夷所思的问题:
在MySQL-5.7大版本下,如果SQL格式类似:

SELECT
    *,
    count( distinct x ) AS cnt 
FROM
    ( subquery ) t0 
GROUP BY
    xx 
ORDER BY
    cnt

那么分组失效。点击链接了解这个case。
总结两个比较好用的方法:
1.将group by包裹一层子查询。将分组和排序隔离
2.在subquery中加上limit。有效的阻止内层derived table被merge到外层

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容