DELETE FROM "table" WHERE "RowID" NOT IN (SELECT MAX("RowID") FROM "table" GROUP BY "aaa", "bbb", "ccc" HAVING COUNT(*) >= 1); 很普通的一条去重复语句,但是当数据量大时(两三万条记录),执行时间要几个小时,但这时执行括号内的查询很快 求优化方案
试试这个
delete from table
where rowid in (select aa
from (select rowid aa,
row_number() over(partition by aaa, bbb, ccc order by a.aaa desc) rn,
a.*
from table a
)
where rn > 1);