How delete duplicate rows from a Table
May 22, 2010
Leave a comment
Creating Table and Insert some sample Data
CREATE TABLE PROC_DATA_LOG ( CN VARCHAR2(20 BYTE), A_DATA VARCHAR2(400 BYTE) ); Select * from PROC_DATA_LOG; CN A_DATA -------------------- ------------ 1 Test Data 1 1 Test Data 1 2 Test Data 2 3 Test Data 3 3 Test Data 3 4 Test Data 4 5 Test Data 5
SQL to delete the duplicate rows
DELETE FROM PROC_DATA_LOG WHERE ROWID NOT IN ( SELECT MAX (ROWID) FROM PROC_DATA_LOG GROUP BY CN );
All duplicate row base on CN is deleted
Select * from PROC_DATA_LOG; CN A_DATA -------------------- ------------ 1 Test Data 1 2 Test Data 2 3 Test Data 3 4 Test Data 4 5 Test Data 5
Delete Duplicate Rows using Analytic functions
DELETE FROM PROC_DATA_LOG WHERE ROWID IN ( SELECT ROWID FROM ( SELECT ROW_NUMBER() OVER (PARTITION BY CN ORDER BY CN) rnk FROM PROC_DATA_LOG ) WHERE rnk>1 );
Categories: Delete duplicate rows, How To
delete duplicate rows



