假设第1,2,3,4的列名分别为c1,ca,cb,cc 可以这样写 DELETE FROM test WHERE rowid IN( SELECT rowid FROM( SELECT rowid,row_number() over(partition by ca order by rowid) rn FROM test) WHERE rn > 1 )
不知道楼主表具体怎样. 但方法如下: SELECT * FROM test t WHERE t.ID IN (SELECT ID FROM test GROUP BY ID HAVING COUNT (*) > 1)
可以这样写
DELETE FROM test WHERE rowid IN(
SELECT rowid FROM(
SELECT rowid,row_number() over(partition by ca order by rowid) rn
FROM test)
WHERE rn > 1
)
但方法如下:
SELECT *
FROM test t
WHERE t.ID IN (SELECT ID
FROM test
GROUP BY ID
HAVING COUNT (*) > 1)
你的sql好强,能给解释解释吗? 我用你的sql做到了,可不知道原理,汗一个先