Trovare Record Duplicati in Campi di unaTabella

Quando si devono esportare dei dati in una tabella di un database SQL, ovviamente la tabella di destinazione dovrà avere una chiave primaria, ed inoltre la tabella di destinazione potrà contenere dei vincoli Unique, in breve, situazioni in cui per uno o più campi non è possibile avere record duplicati.

Se la tabella di origine contiene record duplicati, ed abbiamo già impostato chiavi primarie, vincoli o indici sulla tabella di destinazione, l’esportazione non andrà a buon fine, proprio per i vincoli già impostati sulla tabella di destinazione che non permettono l’inserimento di dati se questi vincoli non vengono rispettati.

In questi casi è bene fare un’analisi preventiva sulla tabella di origine, cercando i record duplicati per capire dove intervenire per eliminarli. La ricerca di record duplicati viene effettuata tramite una semplice query come questa:

SELECT campo, count(*) AS numRecordDuplicati FROM tabellaEsempio GROUP BY campo HAVING count(*) > 1

Il risultato è una tabella in cui viene mostrato nella colonna “campo” il valore duplicato, mentre nella colonna “numRecordDuplicati” viene mostrato il numero di volte in cui il valore indicato nella colonna “campo” si ripete. Ora non rimane che analizzare i record duplicati facendo una query sulla tabella “tabellaEsempio” basata sui valori indicati ed analizzare i dati risultanti per verificare perché avviene la duplicazione.