转载自:https://www.xiaohuihui.net/posts/56e1da3a.html

两种实现方式

先 order by 之后再分组:

SELECT _ FROM (SELECT _ from tb_dept ORDER BY id descLIMIT 10000) a GROUP BY parent_id;

不加LIMIT可能会无效,由于 mysql 的版本问题。但是总觉得这种写法不太正经,因为如果数据量大于 Limit 的值后,结果就不准确了。所以就有了第二种写法。

SELECT * FROM tb_dept td,(SELECT max(id) id FROM tb_dept GROUP BY parent_id) md where td.id = md.id;

开发过程中真实 sql 语句举例:

select  * from (select * from guangnian_distribution order by id desc LIMIT 10000) m group by m.guangnian_id,m.user_id order by id desc