Come query per trovare record duplicati in una tabella

February 4

Come query per trovare record duplicati in una tabella


tabelle di database possono contenere una grande varietà di dati. Senza la creazione di vincoli e le chiavi fin dall'inizio, tuttavia, può essere difficile da navigare attraverso tutte queste informazioni. Per fare un esempio: dire si sviluppa un tavolo per gli autori, ma permettono agli utenti di digitare nei propri valori. Si può finire con sei diverse versioni di Edgar Allan Poe, quando in realtà si vuole solo uno. Per fare questo tipo di dati significativi, si deve scrivere query che consolideranno i duplicati.

istruzione

1 Scrivere una query di base per estrarre i dati dalla tabella siete interessati.

query di esempio nella sintassi SQL e Oracle:
SELEZIONARE AuthorID, DisplayName
DA tblAuthors

2 Modificare la query per contare il numero di volte in cui compare una voce.

query di esempio nella sintassi SQL:
SELECT COUNT (AuthorID) AS NumDuplicates, DisplayName
DA tblAuthors
GROUP BY DisplayName

3 Filtrare l'elenco per tornare solo le voci che compaiono più di una volta.

query di esempio nella sintassi SQL:
SELEZIONA DisplayName
DA tblAuthors
GROUP BY DisplayName
HAVING COUNT (AuthorID)> 1

query di esempio nella sintassi Oracle:
SELEZIONE DisplayName, COUNT (AuthorID) AS NumDuplicates
DA tblAuthors
GROUP BY DisplayName
DOVE NumDuplicates> 1

4 Modificare la query per supportare situazioni più complesse che non comportano una chiave primaria. L'esempio seguente riporterà le voci che hanno tre colonne che sono gli stessi.

query di esempio nella sintassi SQL:
Select Nome, MiddleName, Cognome
DA tblAuthors
GROUP BY Nome, MiddleName, Cognome
HAVING COUNT (Cognome)> 1

query di esempio nella sintassi Oracle:
Select Nome, MiddleName, COUNT (Cognome) AS NumDuplicates
DA tblAuthors
GROUP BY Nome, MiddleName, Cognome
DOVE NumDuplicates> 1

Consigli e avvertenze

  • È possibile modificare la query per estrarre solo le voci che si verificano un certo numero di volte. Questo può essere utile se si sta cercando di tirare un elenco per trovare i valori più popolari al contrario di quelli che sono unici.