我有一个奇怪的表调用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
Run Code Online (Sandbox Code Playgroud)
我想要的是
Name | Company | Position
Michael Google Tester
Peter Facebook Developer
Run Code Online (Sandbox Code Playgroud)
通过一些解决方案,我在这里找到了同样的问题,但它们没有用.例如:
DELETE FROM mytable WHERE Name NOT IN (SELECT MAX(Name) FROM mytable GROUP BY Company);
我应该在这个表中编辑,使用SQLite,没有新表创建,也没有CTE.我该怎么做?
您可以选择保留min或max中rowid通过所示的3列编组.
delete from myTable
where rowid not in (select min(rowid)
from myTable
group by name,company,position)
Run Code Online (Sandbox Code Playgroud)
SELECT DISTINCT Name, Company, Position
FROM yourTableName
Run Code Online (Sandbox Code Playgroud)
如果你想删除“重复”行,你可以这样写:
yourTableName - 应该是你真正的数据库表
yourColumn - 应该是您真正的数据库列
DELETE FROM yourTableName
WHERE yourColumn NOT IN (
SELECT yourColumn
FROM yourTableName
WHERE yourColumn IS NOT NULL
)
Run Code Online (Sandbox Code Playgroud)