首页 > 解决方案 > Mysql order by 和 group by 查询

问题描述

我有一个 SQL 表,我做了一个 SQL 查询,该查询按最新更新排序,fleetID然后按分组排序。

该表在此图像中:

桌子

查询应该返回第 3 行和第 5 行,但我的返回1 和 3。我的查询是:

SELECT * FROM ( SELECT * from test order by lastupdate )l group by l.fleetid

标签: jquerymysqlsql

解决方案


您没有有效的 SQL 语句——即使您的 MySQL 版本恰好接受它。

如果您想要每个车队的最后更新日期,那么您想要过滤数据,而不是聚合它。这要求where,而不是group by

select t.*
from test t
where t.lastupdate = (select max(t2.lastupdate)
                      from test t2
                      where t2.fleetid = t.fleetid
                     );

推荐阅读