SQL*Plus

Delete duplicate values from a table

OEasy 2006. 12. 26. 15:16
rem -----------------------------------------------------------------------
rem Purpose:    Delete duplicate values from a table
rem Date:       04-Mar-2005
rem Notes:      Verify that the correct rows are deleted before you COMMIT!
rem Author:     Dharmendra Srivastava,Associate, 
rem             MindTree Consulting Pvt Ltd. India
rem -----------------------------------------------------------------------
DELETE FROM my_table 
 WHERE ROWID NOT IN (SELECT MIN(ROWID) 
                       FROM my_table 
                      GROUP BY delete_col_name);
-- Example :
--
-- Given a table called emp with the following columns:
--   id   number
--   name varchar2(20)
--   sal  number
--
-- To delete the duplicate values:
-- 
-- DELETE FROM emp 
--  WHERE ROWID NOT IN (SELECT MIN(ROWID) FROM emp GROUP BY id); 
-- 
-- COMMIT;
--