SQLite如何删除除一个之外的所有重复行?

时间:2017-07-20 12:48:15

标签: sql sqlite

我有一个奇怪的表格 mytable ,没有列是主要的。

  Name    |  Company  |  Position
 Michael     Google      Tester
 Michael     Google      Tester
 Michael     Google      Tester
 Peter       Facebook    Developer
 Peter       Facebook    Developer
 Peter       Facebook    Developer
 Peter       Facebook    Developer

我想要什么

  Name    |  Company  |  Position
 Michael     Google      Tester
 Peter       Facebook    Developer 

通过一些解决方案,我在这里找到了相同的问题,但它们没有用。 例如: DELETE FROM mytable WHERE Name NOT IN (SELECT MAX(Name) FROM mytable GROUP BY Company);

我应该在此表中编辑,使用SQLite,不创建新表,也不使用CTE。我该怎么办?

3 个答案:

答案 0 :(得分:6)

您可以选择将显示的3列{{temperature}}min max分组。

rowid

答案 1 :(得分:2)

SELECT DISTINCT  Name,  Company,  Position 
FROM yourTableName

如果你想删除"重复"您可以写这个行:

yourTableName - 应该是您真正的数据库表

yourColumn -  应该是你真正的数据库专栏

DELETE FROM yourTableName
WHERE yourColumn NOT IN (
    SELECT yourColumn 
    FROM yourTableName
    WHERE yourColumn IS NOT NULL
)

答案 2 :(得分:1)

希望此解决方案适合您:

ALTER IGNORE TABLE mytable添加独特的索引(NameCompanyPosition);