2012-06-20 82 views
1

,如果我有以下數據的最新ID:SQL:查看基於最新更新的時間戳

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 

我想運行一個查詢在那裏我只看到基於最新updatedDate對於給定的ROUTE_NAME的route_id,因此,例如對於ROUTE_NAME FFroute_id上述應40.

我試圖做到這一點使用:

select route_name,route_id,max(updatedDate) from route_de 
    group by route_name,route_id,updatedDate 
    having count(*) >= 1 
    order by route_name 

,但由於updatedDate字段(這是一個大表),我得到許多重複的行。有人可以建議一種方法來歸檔上述?

+0

嘗試使用Distinct :) – Naval

回答

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 
+0

謝謝,作品:-) – ke3pup