方法1:delete from xxx(表名) where rowid not in( select max/min(rowid) from xxx(表名) group by xxx(需要去重的列名,可以跟逗号實作多個列名去重))。
此方法采用直接删除的方法。但是效率比較低,資料量小的話可以使用。對于超過100w的資料推薦用方法2.
方法2:create table xxx(自定義表名) as select *(如果隻需要部分列就直接把需要的列寫出來) from xxx(表名)where rowid in (select max/min(rowid) from xxx(表名) group by xxx(需要去重的列名,可以跟逗号實作多個列名去重))
此方法采用将非重複資料導出至中間表的方法。可将原表drop,中間表重命名。也可以将中間表資料再導回至原表(暫未實踐)。此方法效率較方法1效率有極大的提高。推薦用此方法。
原文:https://www.cnblogs.com/sy-gbl/p/11834006.html