SQL - Cancellazione Record Doppi

Il . Inserito in Informatica. Visite: 606

Stella inattivaStella inattivaStella inattivaStella inattivaStella inattiva
 

Può capitare che per errori di programmazione unione di archivi troviamo nei nostri files dei record doppi da eliminare ...

Con SQL è un operazione molto semplice ... vediamo un esempio:
Supponiamo il nostro file con un tracciato molto semplice: CAMPO1, CAMPO2, CAMPO3 ... la chiave (con i doppioni) supponiamo sia fatta dai due campi CAMPO1 e CAMPO2.
Il contenuto del file, con i doppioni è il seguente:

...+....1....+....2....+....3....+...

 CAMPO1      CAMPO2      CAMPO3      

 ----------  ----------  ---------- 

 PIPPO       BAUDO                   1          

 PIPPO       BAUDO                   2          

 PIPPO       BAUDO                   3          

 PIPPO       PAPO                     1          

 PLUTO      PAPO                     3          

 PLUTO      PAPO                     4          

* * * * *  F I N E  D E I  D A T I  *

La seguente istruzione SQL elimina eventuali doppioni (cancellando il record con numero di record più alto !) ... attenzione, se la stessa chiave è ripetuta più di due volte conviene eseguire ripetutamente la stessa istruzione per eliminare di volta in volta un un doppione della stessa chiave.
DELETE FROM MIOFILE AS B WHERE RRN(B) IN
( SELECT MAX(RRN(A)) FROM MIOFILE AS A GROUP BY CAMPO1,CAMPO2 HAVING COUNT(*)>1)

Primo passaggio

...+....1....+....2....+....3....+...

 CAMPO1      CAMPO2      CAMPO3     

 ----------  ----------  ---------- 

 PIPPO       BAUDO                   1          

 PIPPO       BAUDO                   2          

 PIPPO       PAPO                     1          

 PLUTO      PAPO                     3          

* * * * *  F I N E  D E I  D A T I  *


Secondo passaggio

...+....1....+....2....+....3....+...

 CAMPO1      CAMPO2      CAMPO3     

 ----------  ----------  ---------- 

 PIPPO       BAUDO                   1          

 PIPPO       PAPO                     1          

 PLUTO      PAPO                     3          

* * * * *  F I N E  D E I  D A T I  *

Autore
Davide Galloni
Author: Davide GalloniEmail: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.
"La vita è l'insegnante più severa, prima ti fa l'esame e poi ti spiega la lezione"

Tags: sql cancellazione record doppi doppi informatica

Aggiungi commento


Codice di sicurezza
Aggiorna

Link Sponsorizzati.