sqlite - 删除重复行
问题描述
我正在学习SQLite
并构建了一条我认为会删除重复但它会删除所有行的行。
DELETE from tablename WHERE rowid not in (SELECT distinct(timestamp) from tablename);
我希望这会删除重复的行(留下一个)。我知道我可以简单地创建一个具有不同行的新表,但为什么我没有做的工作?谢谢
解决方案
对于最新版本的 sqlite,以下是一种替代方法:
DELETE FROM tablename
WHERE rowid IN (SELECT rowid
FROM (SELECT rowid, row_number() OVER (PARTITION BY timestamp) AS rownum
FROM tablename)
WHERE rownum >= 2);
推荐阅读
- mongodb - 使用 vue js 和 axios 按 id 显示单个记录
- salesforce - 保存时 Salesforce 机会确认警告
- android - textureView和OpenGL结合的问题
- python - 如何通过使用锁来改进 python 线程?
- javascript - 如何从孩子访问父参考
- python - IndexError:超出范围的字符串索引不断出现
- php - 如何在 bash PHP 脚本上使用 clear 命令?
- javascript - 下推菜单 - 修改后的引导模板
- mysql - SQL如何查询最早的股票价格?
- python - 如何将时尚 MNIST 转换为数据集类?