分组依据创建的时间戳选择最后的记录

时间:2014-08-21 08:01:12

标签: php

我有一个包含记录的表

id  note    date    timestamp
1   ABCD    2014-08-18  2014-08-18 08:33:49
2   ABCDE   2014-08-18  2014-08-18 08:33:49
3   ABCDEF  2014-08-19  2014-08-18 08:33:49
4   XYZ     2014-08-19  2014-08-19 15:25:15
5   ABCD    2014-08-20  2014-08-19 15:25:15
6   ABCD    2014-08-19  2014-08-20 19:30:02

我需要分组“注意”&选择上次时间戳创建的值。

我的预期输出应为:

id  note    date    timestamp
2   ABCDE   2014-08-18  2014-08-18 08:33:49
3   ABCDEF  2014-08-19  2014-08-18 08:33:49
4   XYZ     2014-08-19  2014-08-19 15:25:15
6   ABCD    2014-08-19  2014-08-20 19:30:02

我正在使用查询

SELECT Field1, Field2, Max(TimeStamp) maxTime FROM table GROUP BY Field1

来自帖子“MySQL Select Group of Records Based on latest timestamp

但查询选择上一个时间戳,但日期字段将是以前的记录..

请检查SQL小提琴:http://sqlfiddle.com/#!2/92a0ab/1并让我知道我错在哪里,或者有人可以帮我正确查询!!!

1 个答案:

答案 0 :(得分:4)

你可以尝试

SELECT * FROM (SELECT * FROM table ORDER BY timestamp DESC) AS a GROUP BY a.note ORDER BY a.timestamp

我觉得它对你有帮助:)。