我錯誤地將重複文件加載到數據庫表(IBM DB2 v9.7)中。我需要刪除重複的記錄而不刪除有效的數據。刪除重複數據而不刪除數據加載多次
最初,我雖然HAVING count(*) > 1
作爲我的問題的解決方案,但這不會工作。我們的供應商生產具有修改規格的零件,因此可以通過有效數據多次加載文件。
我知道一些事情:
- 日期範圍爲我重複記錄:屬性之間「2012年8月27日」和 「2012-08-30」
- 使用來驗證數據
這是我的SQL代碼來識別受騙者:
SELECT CAST(ENDDATE AS DATE) ENDDATE,CAST(LOADEDON AS DATE),SUBSTR(SITEID,1,20) SITEID,SUBSTR(LOCATIONNAME_1,1,20),SUBSTR(RID,1,15),COUNT(RID) FROM AUTOMATION WHERE CAST(ENDDATE AS DATE) BETWEEN '2012-08-27' AND '2012-09-02' GROUP BY CAST(ENDDATE AS DATE),CAST(LOADEDON AS DATE),SUBSTR(SITEID,1,20),SUBSTR(LOCATIONNAME_1,1,20),SUBSTR(RID,1,15) ORDER BY 5 ASC FOR FETCH ONLY WITH UR
ED IT:可用於指定重複的一組列可以是RID,LOADEDON和FILENAME(此處未顯示)。
這是一個示例輸出
08/29/2012 09/05/2012 JGS Memphis JGS Memphis 029369751671 518
09/01/2012 09/05/2012 Reynosa Reynosa 029054883474 521
08/29/2012 09/05/2012 JGS Memphis JGS Memphis 028881223425 522
我想刪除時間表「2012年8月27日」的所有重複的記錄「2012-08-30」,但不刪除已加載n個記錄次爲合法原因。
注:表中沒有主鍵(如Rowid
在MS SQLSERVER,例如)
難道你只是做一個回滾? – Kermit
今天早上發現錯誤。它發生在上週。我太遲了。 – Chris