保存最近日期的重复项,并从oracle中删除其他项

时间:2014-08-14 07:31:55

标签: sql oracle

目前我的情况是我想从oracle中的表中删除重复项。问题是我想保存最近的行(根据日期字段)并删除其他重复项。例如,这是我的表的一个小快照:

TASK:(num, code, downtime)
--------------------------
   123  2432  7/13/2014 10:27
   123  2784  7/13/2014 11:57
   154  2232  8/9/2014  12:11
   154  2523  8/12/2014 01:27

我希望剩下的表格是:

   123  2784  7/13/2014  11:57
   154  2523  8/12/2014  01:27

请您告诉我oracle查询符合我的要求吗?

1 个答案:

答案 0 :(得分:2)

试试这个:

delete task 
 where (num, downtime) not in (
  select num, max(downtime) 
    from task
   group by num
)