本来删除重复(指某一字段重复)的列,网上的语句很多。比如:
delete from ldrk20190508 where rowid not in (select max(rowid) from ldrk20190508 group by sfzh)
ldrk20190508指代要删的表,sfzh指重复的列。
但是我试了,在数据量大的情况下,特别慢,甚至几小时完成不了。
于是自己做了简单改动,把要删除的rowid建了临时表,一步变两步操作:
create table ls_id as select rowid ROW1 from ldrk20190508 where rowid not in (select max(rowid) from ldrk20190508 group by sfzh)
再执行
delete from ldrk20190508 where rowid in (select ROW1 from ls_id)
效果不错,快多了。
mark