1

以下のデータがある場合:

    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指定されたroute_nameの最新のベースのみが表示されるクエリを実行したいupdatedDateので、たとえば、FF上記のroute_nameの場合はroute_id40になります。

私はこれを使用してみました:

    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フィールド(これは大きなテーブルです)のために、多くの繰り返し行が表示されます。誰かが上記をアーカイブする方法を提案できますか?

4

1 に答える 1

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
于 2012-06-20T04:57:58.117 に答える