如何选择更新日期最近的记录?样本数据:
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 的最新记录?
如何选择更新日期最近的记录?样本数据:
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 的最新记录?
MAX
一种选择是使用and加入表本身GROUP 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