Tips and Tricks: Brisanje duplih redaka iz tablice
Tuesday, 24.07.2012 – mradovanKoliko puta vam se dogodilo da je u tablicu identičan redak insertan dva ili više puta, a tablica nije imala definirana ograničenja koja bi to spriječila, ili se eventualno identični redovi razlikuju samo po primarnom ključu. U svakom slučaju, od njih je potreban samo jedan, svi ostali su suvišni, i samo zauzimaju prostor, povećavaju vrijeme izvršenja upita i rade zbrku u programskom kodu i rezultatima upita.
Postoji više tehnika kako obrisati duplikate, neke od njih možete pogledati na Burleson Consulting linku
http://www.dba-oracle.com/t_delete_duplicate_table_rows.htm.
Moj favorit je kratki kod:
DELETE FROM
table_name A
WHERE
a.rowid > ANY (
SELECT B.rowid
FROM
table_name B
WHERE A.col1 = B.col1
);
Naravno, where uvjet je mjesto gdje ćete odrediti identifikatore retka, tako da može biti sastavljen od jednog ili više uvjeta vezanih AND i OR veznicima.