Slik sletter duplikater med Oracle SQL

Oddsen er høy at hvis du leser denne artikkelen, bruker du en Oracle database og allerede oppdaget duplikater i en eller flere av tabellene. Ikke bekymre deg, eliminere duplikater gjennom SQL-kode kan enkelt gjøres. Men som mange gode programmerere vet, bare fordi du kan slette noe betyr ikke at du burde.

Bruksanvisning

1 Slik sletter duplikater med Oracle SQL


Åpne SQL redaktør og bruke en standard SQL "Velg" statement å trekke opp poster fra bordet der du tror de duplikater eksisterer. Kodeeksempel:
SQL> Velg kolonne 1, COLUMN2 fra yourtablename;
I figur 1 har "Fornavn" og "Usrid" kolonner er valgt fra en tabell som heter "contacts_ersch." Husk denne tabellen har flere kolonner med informasjon som ikke blir vist, for eksempel e-postadresser og etternavn. Ta hensyn til så mange datapunkter i raden som mulig for å sikre de dupliserte raden du har å gjøre med virkelig er en duplikat.

2 Slik sletter duplikater med Oracle SQL


Sjekk duplikat bruker SQL "Count" funksjon. Det finnes mengder av måter å finne og sjekke duplikater. I figur 1 er det to rader med navnet "David" og en annen to med navnet "Natalie". Siden dette er hypotetisk eksempel, både David og Natalie er doble oppføringer. Sjekker bare ett datapunkt som for eksempel et fornavn er vanligvis aldri nok så, for å være grundig, hele kontaktoppføring for hver av disse personene er duplikater. Den eneste forskjellen mellom postene er "Usrid" nummer.
En måte å utføre en sjekk med SQL før du sletter en kopi posten er å bruke SQL "Count" funksjon for å finne antall ganger verdien eksisterer i en kolonne. Figur 2 bruker en variant av kode for å finne duplikater med SQL.
Noen kode for eksempel: SQL> Velg kolonne 1,

Count (column1) As NumOccurrences
From yourtablename
Group By column1
Having (Count (column1) > 1);
3 Slik sletter duplikater med Oracle SQL

Slett dupliserte rad en SQL "Delete" statement. Koden kan se omtrent slik ut:
SQL> Slett fra yourtablename
Hvor COLUMN2 = verdien du velge mellom COLUMN2
Figur 3 viser bruken av "Usrid" -kolonnen og den tilsvarende verdien av seks for å slette dupliserte oppføring for "Natalie". Ideelt sett vil det være en unik identifikator som er en del av et duplikat posten. En unik identifikator på rad som et indeksnummer eller Rekordmange vil bedre forberede og gjøre deg i stand til å dechiffrere blant duplikater som du ønsker å slette.

4 Slik sletter duplikater med Oracle SQL


Sjekk sletting ved å gjenta trinn 1. Figur 4 viser at med bruk av SQL "Delete" statement begge like poster for David og Natalie har blitt slettet. Deretter, er det også et tydelig gap er vist i tallene for de "Usrid» -kolonnen.