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
);
No comments:
Post a Comment