Ano, za předpokladu, že máte jedinečné pole ID, můžete odstranit všechny záznamy, které jsou stejné kromě ID, ale nemají "minimální ID" pro svou skupinu hodnot.
Příklad dotazu:
DELETE FROM Table
WHERE ID NOT IN
(
SELECT MIN(ID)
FROM Table
GROUP BY Field1, Field2, Field3, ...
)
Poznámky:
- Jako reprezentativní názvy jsem volně zvolil „Tabulka“ a „ID“
- Seznam polí ("Pole1, Pole2, ...") by měl obsahovat všechna pole kromě ID
- Toto může být pomalý dotaz v závislosti na počtu polí a řádků, nicméně očekávám, že ve srovnání s alternativami bude v pořádku
EDIT:V případě, že nemáte jedinečný index, doporučuji jednoduše přidat automatický přírůstkový jedinečný index. Především proto, že je to dobrý design, ale také proto, že vám umožní spustit dotaz výše.