Come faccio ad avere unici record da tabelle con SQL?

October 18

Come faccio ad avere unici record da tabelle con SQL?


righe duplicate sono spesso inseriti in tabelle di database quando non c'è un vincolo in atto per evitare che la situazione. Talvolta questa è una situazione valida, mentre indica un problema in altre circostanze. Il linguaggio di interrogazione strutturato (SQL) utilizzato per accedere e manipolare database relazionali in grado di identificare le righe duplicate o semplicemente restituire dati univoci. I valori memorizzati nella chiave primaria deve sempre essere unico.

istruzione

1 Emettere l'istruzione SELECT con una funzione di conteggio per determinare se esistono le righe duplicate nella tabella. In questo esempio, il "TEST_TABLE" comprende tre colonne denominate "col1", "col2" e "col3" con le seguenti righe:

AAA | BBB | CCC

AAA | BBB | DDD

AAA | BBB | CCC

Quando i seguenti "Seleziona" esegue statement, tutte le righe vengono restituite.

selezionare col1, col2, col3 da TEST_TABLE

2 Aggiungere un parametro "conteggio" e un "gruppo da" clausola per la "select" per identificare le righe duplicate. Il "gruppo da" racconta la query per arrotolare i dati utilizzando le colonne dopo il comando.

selezionare col1, col2, col3, COUNT (*) dal gruppo TEST_TABLE da col1, col2, col3

I risultati di questa ricerca sono:

AAA | BBB | CCC | 2

AAA | BBB | DDD | 1

A "conteggio" di "1" indica che la riga è unico, mentre ogni "count" che è maggiore di uno indica righe duplicate. In questo caso, due file hanno lo stesso valore.

Le file sono unici a questo punto. Rimuovere la "COUNT (*)" dopo il test se non è necessario.

3 Aggiungere un "avere" clausola per il "selezionare" dichiarazione di tirare solo singoli file o duplicare solo le righe.

selezionare col1, col2, col3, count () dal gruppo TEST_TABLE da col1, col2, avendo conteggio col3 () = 1

I risultati di questa ricerca sono:

AAA | BBB | DDD | 1

selezionare col1, col2, col3, count () dal gruppo TEST_TABLE da col1, col2, col3 avendo count ()> 1

I risultati di questa ricerca sono:

AAA | BBB | CCC | 2