mysql分组查询排序问题

有这样一张表 tableName: T

id code time 1 101 2023-02-21 10:00:00 2 102 2023-02-21 18:00:00 3 104 2023-02-20 10:00:00 4 102 2023-02-20 18:00:00

想要查询每天时间最大的一条数据,按照分组并且排序的sql应该是这样写的

select id, max(time) as maxTime from T group by date_fromat(time, %y-%m-%d)

查询出来的数据是长这样

id time 1 2023-02-21 18:00:00 3 2023-02-20 18:00:00

这数据明显是不对的,id为 1 对应的时间应该是 2023-02-21 10:00:00 group by分组之后,用max函数的话,除了分组字段,其他字段依旧取的第一条。 多个地方查阅之后,依旧没有解决这个查询逻辑问题,好多博客都是写的这个max的函数。 最后决定用java流来处理这个查询逻辑问题。

list.stream().sorted().collect(Collector.toMap())
经验分享 程序员 微信小程序 职场和发展