我有一个巨大的表 – 3600万行 – 在sqlite3。
在这个非常大的表中,有两列
> hash – 文本
> d – real
但是,某些行是重复的。也就是说,hash和d都具有相同的值。
此外,如果两个散列是相同的,d的值也是相同的,但是两个相同的ds不意味着两个相同的散列
反正,我想删除重复的行。我没有主键列,因为我是一个白痴。什么是最快的方式做到这一点?
EDIT:delete from dist where rowid not in(select max(rowid)from dist group by hash);
看来做的伎俩。
你需要一种方法来区分行。根据你的评论,你可以使用特殊的
rowid column。
原文链接:https://www.f2er.com/sqlite/198315.html要通过保留每个(hash,d)的最低rowid来删除重复项:
delete from YourTable where rowid not in ( select min(rowid) from YourTable group by hash,d )