Dengan asumsi tidak ada nol, Anda GROUP BY
kolom unik, dan SELECT
MIN (or MAX)
RowId sebagai baris yang harus disimpan. Kemudian, hapus saja semua yang tidak memiliki id baris:
DELETE FROM MyTable
LEFT OUTER JOIN (
SELECT MIN(RowId) as RowId, Col1, Col2, Col3
FROM MyTable
GROUP BY Col1, Col2, Col3
) as KeepRows ON
MyTable.RowId = KeepRows.RowId
WHERE
KeepRows.RowId IS NULL
Jika Anda memiliki GUID alih-alih bilangan bulat, Anda dapat mengganti
MIN(RowId)
dengan
CONVERT(uniqueidentifier, MIN(CONVERT(char(36), MyGuidColumn)))