关于数据库Group By取最新一条数据
程序员文章站
2024-03-21 11:04:52
...
示例表
查询期望结果
根据字段super_find_id分组查询opt_time最新的一条数据,如以上示例表中期望查询结果为第2条。
- 先分组
SELECT
b.super_find_id,
MAX( b.opt_time ) AS opt_time
FROM
info_super_feedback b
GROUP BY
b.super_find_id
查询结果:
根据super_find_id字段分组取opt_time字段最新数据已成功,下一步是要取对应的全部字段值。
- 查询分组后最新那条数据对应的全部表字段值
SELECT
f.id,
f.feedback_content,
f.super_find_id,
f.opt_time
FROM
( SELECT b.super_find_id, MAX( b.opt_time ) AS opt_time FROM info_super_feedback b GROUP BY b.super_find_id ) b
INNER JOIN info_super_feedback f ON f.super_find_id = b.super_find_id AND f.opt_time = b.opt_time
查询结果:
与未分组前的原始数据相比:
结果
分组取最新的那条数据,查询结果尚未发现有误地方。若有更好方法,踊跃留言吧~~~
上一篇: sql查询分组中一条最新的数据