Kansen zijn groot dat als je dit artikel leest , bent u met behulp van een Oracle -database en al ontdekt duplicaten in een of meerdere van uw tafels . Geen zorgen te maken , kan het elimineren van duplicaten door je SQL code gemakkelijk worden gedaan . Echter , zoals veel goede programmeurs weten , gewoon omdat je iets kunt verwijderen betekent niet dat je zou moeten. Wat je nodig hebt Oracle-database Oracle SQL * Plus redacteur Toon Meer Aanwijzingen 1 Open uw SQL -editor en gebruik een standaard SQL " Select " statement te trekken van records uit de tabel waar je denkt dat de duplicaten bestaan . Code sample : ; " . Contacts_ersch " SQL > Selecteer column1 , kolom2 uit yourtablename In figuur 1 zijn de " Voornaam " en " Usrid " kolommen geselecteerd uit een tabel met de naam Onthoud deze tabel heeft extra kolommen met informatie die niet worden getoond , zoals e-mailadressen en achternamen . Rekening te houden met zo veel datapunten in de rij mogelijk te zorgen de dubbele rij je te maken met echt een duplicaat is. Kopen van 2 Controleer de duplo uit met de SQL-functie " Count " . Er zijn massa's manieren te vinden en te controleren duplicaten . In figuur 1 zijn er twee rijen met de naam " David " en twee andere met de naam " Natalie . " Aangezien dit is hypothetisch voorbeeld , zowel David en Natalie zijn dubbele vermeldingen . Controleren slechts een datapunt zoals een voornaam is meestal nooit genoeg dus , worden grondig , het hele contact record voor elk van deze personen zijn duplicaten . Het enige verschil tussen de platen is de " Usrid " number.One manier om een controle met SQL verwijderen en dan pas een dubbele record is de functie SQL " Count " om het aantal keren dat de waarde bevat een kolom zijn. Figuur 2 maakt gebruik van een variant van de code voor het vinden van duplicaten met SQL.Some code bijvoorbeeld : SQL > Selecteer column1 , Graaf ( kolom1 ) Zoals NumOccurrencesFrom yourtablenameGroup Door column1Having ( Count ( kolom1 ) > 1 ) ; < br > 3 Verwijder de dubbele rij met behulp van een SQL "Delete " statement . Uw code kan er ongeveer zo uitzien : " . Natalie " SQL > Verwijderen uit yourtablenameWhere kolom2 = waarde die u kiest uit column2Figure 3 toont het gebruik van de " Usrid " kolom en de bijbehorende waarde van zes tot de dubbele vermelding te verwijderen Idealiter zal een unieke identificatie die deel uitmaakt van een dubbele record . Een unieke identificatie in een rij , zoals een index nummer of record aantal zal beter voor te bereiden en stellen u in staat te ontcijferen tussen de duplicaten die u wilt verwijderen . 4 Controleer uw verwijdering door Stap 1 te herhalen . Figuur 4 laat zien dat met het gebruik van de SQL " Delete " verklaring zowel van de dubbele records voor David en Natalie zijn verwijderd . Vervolgens is er ook een duidelijk verschil in de aantallen van de " Usrid " kolom .
|