方法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效率有極大的提高。推薦用此方法。