表中数据如下

要求通过type进行分组,并取每个组内ID最大的值
正常写法
SELECT * FROM ems_warn_data GROUP BY type
该方式取值的结果

从结果中可以看到,type=2期望取值是id=3,说明group by分组后取的是取的分组后正序排序的第一个值
改进后的写法
SELECT * FROM (SELECT * FROM ems_warn_data ORDER BY id DESC) t GROUP BY type
该方式取值的结果

满足要求,思路是先进行排序然后对排序结果进行分组即可!
博客围绕MySQL表数据处理,要求按type分组并取每组内ID最大的值。先给出正常写法及结果,发现分组后取的是正序排序第一个值,不满足需求;后给出改进写法,思路是先排序再分组,结果满足要求。
2949





