SQL:根据最新更新的时间戳查看最新的ID

时间:2012-06-20 04:38:56

标签: sql postgresql

如果我有以下数据:

    route_name     updatedDate          route_id
    FF          15/06/2012 0:00         22
    DD          15/06/2012 0:00         31
    FF          16/06/2012 0:00         23
    FF          17/06/2012 0:00         24
    DD          17/06/2012 0:00         32
    DD          17/06/2012 18:00            
    FF          18/06/2012 0:00         
    FF          18/06/2012 19:00        40
    DD          20/06/2012 0:00         60

我想运行一个查询,其中我只看到基于最新route_id的{​​{1}}给定的route_name,例如对于updatedDate上方的route_name FF应该是40岁。

我尝试使用以下方法执行此操作:

route_id

但由于updatedDate字段(这是一张大表),我得到了很多重复的行。有人可以建议一种存档方式吗?

1 个答案:

答案 0 :(得分:2)

select route_de.route_name, route_de.route_id from route_de join
(select max(updatedDate) as maxDate, route_name from route_de group by route_name) maxRoutes
on maxRoutes.maxDate = route_de.updatedDate and maxRoutes.route_name = route_de.route_name