我有一个sqlite DB的声明:
SELECT messdatum,count(*) as anzahl from lipo GROUP BY Messdatum ORDER BY anzahl desc;
导致一些行,这表明我有一些重复与相同的Messdatum.
如何从我的sqlite db中删除重复项? (它应该删除anzahl-1记录,其中messdatum是相同的吗?)有人建议吗?
PS:我发现这个链接How to remove duplicate from Microsoft但是有sqlite方言的问题.由于sqlite语法,我得到了一些错误.
所以f.e.我可以:
INSERT into holdkey SELECT messdatum,count(*) as anzahl from lipo group by messdatum having count(*) > 1; INSERT into holddups SELECT disTINCT lipo.* from lipo,holdkey where lipo.Messdatum = holdkey.messdatum ; DELETE lipo from lipo,holdkey where lipo.messdatum = holdkey.messdatum;
这是delete命令的错误.我怎样才能做到这一点?我试图将holdkey.anzahl更新为lipo中的另一个col
UPDATE lipo,holdkey set lipo.duplettenzahl = holdkey.anzahl WHERE lipo.messdatum = holdkey.messdatum ;
但这也是不可能的.如果我将脂肪中的anzahl作为dublettenzahl,我可以删除所有来自lipo的记录,其中dublettenzahl> 0.请帮忙!谢谢
默认情况下,sqlite在每个表上都创建了一个
special column,
ROWID
(您可以使用WITHOUT ROWID修饰符进行
switch it off,但在此之前要非常确定).
这意味着我们可以识别重复项集中的特定行,例如,查找值的第一个条目:
SELECT messdatum,MIN(ROWID) FROM lipo
DELETE FROM lipo WHERE rowid NOT IN ( SELECT MIN(rowid) FROM lipo GROUP BY messdatum )
原文地址:https://www.jb51.cc/sqlite/197888.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。