【怎么取个每id最近一个时间的记录】

【如何取个每id最近一个时间的记录】sql语句筛选查询问题查询结果为:

【如何取个每id最近一个时间的记录】
sql语句筛选查询问题

查询结果为:
=========================================================
id         批准号          地点          时间
6541      XZ10631         上海        2009-12-7 8:49:18
6541      XZ10844         成都        2010-1-16 16:30:36
6541      XZ12631         杭州        2013-7-12 16:16:37
7328      XZ20452         重庆        2010-9-23 17:19:23
7328      XZ22351         福州        2010-1-16 15:23:25
7328      XZ27153         广州        2013-7-12 15:17:40
=========================================================



希望查询结果为(每个id取最近一个时间的记录):
=========================================================
id         批准号          地点          时间
6541      XZ12631         杭州        2013-7-12 16:16:37
7328      XZ27153         广州        2013-7-12 15:17:40
=========================================================

由于数据量比较大,不能手工删除记录。谢谢。 最近时间记录 ?最近
[解决办法]
select * from table where (id,时间) in (select id,max(时间) from t group by id)
------解决方案--------------------


with
t as (select 6541 id,'XZ10631'批准号,'上海'地点,to_date('2009-12-7 8:49:18','yyyy-mm-dd hh24:mi:ss')时间 from dual
     union all 
     select 6541 id,'XZ10844'批准号,'成都'地点,to_date('2010-1-16 16:30:36','yyyy-mm-dd hh24:mi:ss')时间 from dual
     union all 
     select 6541 id,'XZ12631'批准号,'杭州'地点,to_date('2013-7-12 16:16:37','yyyy-mm-dd hh24:mi:ss')时间 from dual
     union all 
     select 7328 id,'XZ10631'批准号,'重庆'地点,to_date('2010-9-23 17:19:23','yyyy-mm-dd hh24:mi:ss')时间 from dual
     union all 
     select 7328 id,'XZ22351'批准号,'福州'地点,to_date('2010-1-16 15:23:25','yyyy-mm-dd hh24:mi:ss')时间 from dual
      union all 
     select 7328 id,'XZ27153'批准号,'广州'地点,to_date('2013-7-12 15:17:40','yyyy-mm-dd hh24:mi:ss')时间 from dual)
select * 
from (select t.* ,row_number()over(partition by id order by 时间 desc)rn from t)
where rn=1;

[解决办法]
引用:
select * from table where (id,时间) in (select id,max(时间) from t group by id)

写的好,我的观点也是这样的