数据库和sql的优化

MySQL 5.7 子查询,分组,排序,count distin

2021-10-28  本文已影响0人  NEU_PROYZ

本文是一篇记录文章,不说废话,也不讨论深层原因,给大家提供一个解决问题的方法
正如题目关键字所言,最近在工作中遇到一个匪夷所思的问题:
在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到外层

上一篇下一篇

猜你喜欢

热点阅读