SQL: Selezionare righe duplicate

Esiste una query per selezionare le righe di una tabella che hanno un valore in comune? Scopriamolo assieme.
Ogni buon programmatore, che ha a che fare quotidianamente con i database, si troverà prima o poi a dovere ricavare le righe duplicate di una tabella, quelle cioè che hanno uno o più campi in comune. Una specie di "SELECT NOT DISTICT", come erroneamente viene codificato da molti, andando incontro ad un sicuro errore.
Ad esempio, potremmo estrarre dal database di un negozio di assistenza tutti i computer con lo stesso numero seriale, cioè quelli riparati più di una volta. La query corretta è la seguente:
SELECT numero_seriale, nome_cliente, data_riparazione FROM assistenza WHERE numero_seriale IN ( SELECT numero_seriale FROM assistenza GROUP BY numero_seriale HAVING COUNT(*) > 1 );
Una query come questa è utile anche in casi di database corrotti, che presentano dati erroneamente duplicati. Fatene buon uso e per qualunque domanda potete lasciare un commento qui sotto.
2 commenti
Solo gli utenti registrati possono lasciare commenti.