另一种解决方案:使用排名函数
select * from (with t as
(select 1 id , '1142B00072' as serail_no ,to_date('2012-11-05 11:36:00','yyyy-mm-dd hh24:mi:ss') created from dual
union all
select 2 id , '1142B00072' as serail_no ,to_date('2012-12-20 14:57:54' ,'yyyy-mm-dd hh24:mi:ss') created from dual
union all
select 3 id , '1142B00072' as serail_no ,to_date('2012-12-28 13:20:54','yyyy-mm-dd hh24:mi:ss') created from dual
union all
select 4 id , '1142B11134' as serail_no ,to_date('2012-11-25 14:57:54' ,'yyyy-mm-dd hh24:mi:ss') created from dual
union all
select 5 id , '1142B11134' as serail_no ,to_date('2013-01-16 16:42:34','yyyy-mm-dd hh24:mi:ss') created from dual)
select id,serail_no,created,rank() over ( partition by SERAIL_NO order by created desc ) rn from t)
where rn=1`