2013-06-24 111 views
3

如何选择最近更新日期的记录?示例数据:MySQL:如何选择最近更新日期的记录

id, update_date, data_point 
1, 2013-03-01, AAA 
1, 2013-03-02, AAB 
1, 2013-03-03, AAC 
2, 2013-04-02, BAS 
2, 2013-04-05, SOR 
3, 2013-01-01, AAW 
3, 2013-02-02, AJS 

我可以写什么查询来选择行3,5和7-每个ID的最新记录?

回答

3

一种选择是加入本身的表,使用MAXGROUP BY

SELECT t.id, t.update_date, t.data_point 
FROM yourtable t 
    JOIN (
     SELECT id, MAX(update_date) max_update_date 
     FROM Yourtable 
     GROUP BY id 
    ) t2 on t.id = t2.id AND t.update_date = t2.max_update_date 

返回的结果:

ID UPDATE_DATE   DATA_POINT 
------------------------------------- 
1 March, 03 2013  AAC 
2 April, 05 2013  SOR 
3 February, 02 2013 AJS 
+0

谢谢!如果与max_update_date有联系,是否有简单的方法来打破平局? – fanalytics

+0

@ user2517677 - np,很高兴我能帮上忙。关于关系,取决于你想要的结果。如果任意值很好,选择'MAX(data_point)'可能就足够了。 – sgeddes