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


group by and select last records depending on timestamp created

我有一个包含记录的表

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

我需要在"note" &

选择上次时间戳创建的值。

我的期望输出应该是:

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

from post "MySQL Select Group of Records Based on latest timestamp"

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

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

你可以试试

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

我想它对你有帮助。