delete t where rowid not in (select min(rowid) from t group by col1,col2);
select * from c where mgr in (select mgr from c group by mgr having count(mgr) > 1)
1楼正解 如果用not exists 可能会更好些,DELETE FROM t WHERE EXISTS (SELECT 1 FROM (SELECT MIN(ROWID) AS mrowid FROM t GROUP BY col1, col2) t2 WHERE t2.mrowid != t.ROWID);
delete from 表名 T1 WHERE T1.ROWID > (SELECT MIN(ROWID) FROM 表名 T2 WHERE T1.COLNAME = T2.COLNAME GROUP BY T2.COLNAME HAVING COUNT(T2.COLNAME) > 1);
select col,count(1) from table group by by col having count(1)>1 --检索表中数据大于1条的,下班了,,,删除的同上
delete t where rowid
not in (select min(rowid)
from t group by col1,col2);
如果用not exists 可能会更好些,DELETE FROM t
WHERE EXISTS (SELECT 1
FROM (SELECT MIN(ROWID) AS mrowid FROM t GROUP BY col1, col2) t2
WHERE t2.mrowid != t.ROWID);
WHERE T1.ROWID > (SELECT MIN(ROWID) FROM 表名 T2
WHERE T1.COLNAME = T2.COLNAME
GROUP BY T2.COLNAME
HAVING COUNT(T2.COLNAME) > 1);