|  | 
Re: 删除重复行SQL优化
| 通过ROWID,如下: delete from demo_table A where rowid in ( select max_rowid from (select column1, max(rowid)  max_rowid from demo_table group by column1))
 
 偶经常这样做
 
 
 
 
 最初由 stone10 发布[B]下面这边zbxsrsz是销售流水帐表,数据有1K万条记录,有一次表的唯一索引被人删除了,然后导数据进去,大概有1万行数据重复掉了,于是我就想把这些重复掉的数据删除掉,我写了如下SQL,但是运行非常慢,特此想让各位大虾 help me!
 
 delete work.zbxsrsz a where exists
 ( select * from work.zbxsrsz
 where xr_bm = a.xr_bm
 and xr_jyrq = a.xr_jyrq
 and xr_jh = a.xr_jh and xr_xh < a.xr_xh
 and xr_jyrq > to_Date('2005.03.13','yyyy.mm.dd')
 and xr_jyrq < to_Date('2005.03.15','yyyy.mm.dd') )
 
 唯一索引段为xr_bm,xr_jyrq,xr_jh,xr_xh(部门、交易日期、机号、序号) [/B]
 | 
 |