这个MySQL表如何按照car_num分组,查出每一组car_online_time最大值对应的car_is_online?

SELECT *,MAX(car_online_time) from qdwyc_car_online GROUP BY car_num

这样查出来 第一条数据不对呀?不是最大值
图片描述

图片描述

阅读 1.7k
2 个回答

Group By的是car_num字段,所以实际上是按照car_num来分组的, 按照car_num分组之后:

  1. 值为44的分组里面,car_online_time这个字段最大的值是2016-11-07 11:35:36

  2. 值为66的分组里面,car_online_time这个字段最大的值是2016-11-07 11:29:26

  3. 值为鲁B1的分组里面,car_online_time这个字段最大的值是2016-11-04 10:21:24
    所以结果没错。

因为你查询的内容是*, MAX(..), 所以分组里的最大值是在最后一列, 而不是前面的数据。


select * from (select * from qdwyc_car_online order by car_online_time desc  ) as m group by car_num
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题