j-- Skrevet 16. september 2010 Del Skrevet 16. september 2010 Problemstilling Har behov for å slette mange rader i en stor tabell. Der flere rader etter hverandre (sortert etter col1) er duplikater (col2 = X og col3 = Y. col1 er en int som vil være forskjellig på alle radene i tabellen) så skal alle de radene bortsett fra den siste slettes. Spørsmålet Er dette noe som kan kjøres via en velformulert SQL-spørring, eller må jeg begynne å koke sammen et script som jobber seg igjennom rad for rad? Kan ta ganske lang tid, da det er snakk om flere millioner rader... Eksempel Fra følgende rader: col1 col2 col3 1 X Y 4 X Y 6 Z Data 9 X Y 10 X Y 14 X Y 15 Z Data Til følgende rader: col1 col2 col3 4 X Y 6 Z Data 14 X Y 15 Z Data Lenke til kommentar
quantum Skrevet 18. september 2010 Del Skrevet 18. september 2010 hmm google "delete duplicate records" ... http://www.cryer.co.uk/brian/sql/sql_delete_duplicates.htm Kanskje du kan modde dette forslaget pittelittegranne? Delete Similar Records To delete similar records, i.e. where the records are not the same but one field is the same and only one copy needs to be preserved, try the following SQL: delete T1 from MyTable T1, MyTable T2 where T1.dupField = T2.dupField and T1.uniqueField > T2.uniqueField This will delete all records from the table MyTable which have the same value for the field dupField, leaving that record which has the lowest value in uniqueField. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå