我已经阅读了大量帖子,但似乎找不到与我的重复记录情况类似的帖子。绝大多数重复的帖子都是为了简单地删除重复项以保留一条记录,或者根据MAX保留副本(例如,日期)或删除具有最新日期的重复项,并保留最新日期的记录。
我想根据字段值删除重复记录。例如,在下面的数据中,我需要删除每个ID的重复项,但保留记录状态为“取消”。对于ID'1',我需要保留的记录是显示状态的“取消”的第二条记录。
我试过
SELECT A.ID, A.CONTRACT, A.COMPANY, A.STATUS, A.DATE
FROM DATA1 A
INNER JOIN
(SELECT ID, COUNT(ID) AS IDCOUNT
FROM DATA1
GROUP BY ID) B
ON A.ID = B.ID
DELETE FROM DATA1
WHERE STATUS = 'ISSUED'
我的桌子(DATA1)有110,661。当我运行此查询时,重复项仍然存在,记录计数从110,661变为114,272。
非常感谢任何帮助。
ID Contract Company Status Date
1 8 Apex Issue 1/10/12
1 8 Apex Cancel 1/10/12
2 13 Costa Issue 07/18/12
2 13 Costa Cancel 07/18/12
3 50 Southern Cancel 11/15/12
3 50 Southern Issue 11/15/12
4 33 Fidelity Issue 2/28/12
4 33 Fidelity Cancel 2/28/12
5 68 United Cancel 4/13/12
5 68 United Issue 4/13/12