io creerei una tabella "pulita" vuota in cui non sono ammessi i duplicati (basta utilizzare il comando unique per definire chiavi primarie su più attributi) dopodichè farei un ciclo che utlizzando il comando distinct legge la tabella "sporca" e riempie la tabella "pulita"...
tutto sta nel vedere se il ciclo non si interrompe quando provi a scrivere una riga già inserita (cioè quando provi a inserire un duplicato)!!!