はい、一意のIDフィールドがあると仮定すると、IDを除いて同じであるが、値のグループの「最小ID」を持たないすべてのレコードを削除できます。
クエリの例:
DELETE FROM Table
WHERE ID NOT IN
(
SELECT MIN(ID)
FROM Table
GROUP BY Field1, Field2, Field3, ...
)
注:
- 代表的な名前として「テーブル」と「ID」を自由に選択しました
- フィールドのリスト(「Field1、Field2、...」)には、IDを除くすべてのフィールドを含める必要があります
- フィールドと行の数によっては、これは遅いクエリになる可能性がありますが、他の方法と比較すると問題ないと思います
編集:一意のインデックスがない場合は、自動増分の一意のインデックスを追加することをお勧めします。主に優れたデザインであるだけでなく、上記のクエリを実行できるようになるためです。