Sì, supponendo che tu abbia un campo ID univoco, puoi eliminare tutti i record che sono uguali tranne l'ID, ma non hanno "l'ID minimo" per il loro gruppo di valori.
Esempio di query:
DELETE FROM Table
WHERE ID NOT IN
(
SELECT MIN(ID)
FROM Table
GROUP BY Field1, Field2, Field3, ...
)
Note:
- Ho scelto liberamente "Table" e "ID" come nomi rappresentativi
- L'elenco dei campi ("Campo1, Campo2, ...") deve includere tutti i campi tranne l'ID
- Questa potrebbe essere una query lenta a seconda del numero di campi e righe, tuttavia mi aspetto che vada bene rispetto alle alternative
EDIT:nel caso in cui non si disponga di un indice univoco, la mia raccomandazione è semplicemente aggiungere un indice univoco autoincrementale. Principalmente perché è un buon design, ma anche perché ti permetterà di eseguire la query sopra.