Удаление дубликатов в строках в SQL

Как найти дублирующиеся строки в таблице?

Для поиска таких строк обычно используется конструкция:
ROW_NUMBER() OVER (PARTITION BY Field1, Field2, .. Field_n ORDER BY Field_k),
где Field1, Field2, .. Field_n — это поля таблицы, на основе которых мы создаем наш ключ и по которым будет происходить выборка и поиск на уникальность.

Подробнее о том, как это работает можно почитать на сайте Microsoft вот по этой ссылке: https://learn.microsoft.com/ru-ru/sql/t-sql/queries/select-over-clause-transact-sql?view=sql-server-ver16

Поэтому ничего нового изобретать мы не будем, а воспользуемся этим кодом и напишем свой запрос:

WITH myDublicatesTable AS
(
    SELECT 
    *, 
    ROW_NUMBER() OVER (PARTITION BY Field1, Field2, Field3 ORDER BY RecId) AS RN
    FROM TableNameWithDuplicateRecords /*Название своей таблицы из которой надо убрать дубли*/
)

delete from myDublicatesTable where RN <> 1

Готово, теперь у нас в исходной таблице останутся только те строки, которые нам нужны, а все дублирующиеся будут удалены.