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到外层

你可能感兴趣的:(MySQL 5.7 子查询,分组,排序,count distinct时,分组失效问题)