17,377
社区成员
发帖
与我相关
我的任务
分享
with temp as (
select 1 id,'AC' content,1198.000 sd,2116.000 ed from dual
union all
select 2 id,'AC' content,2088.000 sd,2900.000 ed from dual
union all
select 3 id,'AC' content,2818.000 sd,3190.000 ed from dual
union all
select 2 id,'DEN' content,2088.000 sd,2900.000 ed from dual
union all
select 3 id,'DEN' content,2818.000 sd,3190.000 ed from dual
)
select id,content,sd,ed from (
select id,content,sd,ed, row_number() over(partition by esdd order by esdd) rn from(
select id,content,sd,ed,max(ed-sd) esdd from temp
where id in (select id from temp group by id having count(id)>1)
group by id,content,sd,ed
)
) where rn = 1 order by id