Oracle使用over()partition by刪除重複記錄

zhangsharp20發表於2017-04-05
--刪除rn不等於1的rowid所在行的記錄
delete from fhx_db_time t2 where t2.rowid in
(
select t1.rid from 
(
--使用row_number() over(partition by XX order by XX)函式對重複資料加標識
select fdt.*,row_number()over (partition by dbuid ,end_interval_time order by dbuid) rn ,rowid rid
 from fhx_db_time fdt
where fdt.insert_time between 
 to_date('2017-03-30 00:00:00','yyyy-mm-dd hh24:mi:ss') and
 to_date('2017-03-31 00:00:00','yyyy-mm-dd hh24:mi:ss')
--將rn不等於1的資料剔除掉
) t1 where t1.rn<>1
)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29802484/viewspace-2136664/,如需轉載,請註明出處,否則將追究法律責任。

相關文章