Sunday, April 11, 2010

query to delete duplicate rows from a table

delete from $table_name where rowid in
(
select "rowid" from
(select "rowid", rank_n from
(select rank() over (partition by $primary_key order by rowid) rank_n, rowid as "rowid"
from $table_name
where $primary_key in
(select $primary_key from $table_name
group by $all_columns
having count(*) > 1
)
)
)
where rank_n > 1
)


*****************************

DELETE FROM TABLENAME
WHERE ROWID IN (SELECT ROWID FROM (SELECT ROW_NUMBER() OVER (PARTITION BY dup_col ORDER BY dup_col_1) rnk
FROM TABLENAME)
WHERE rnk>1);

************************************
9394256794

No comments:

Post a Comment