Удаления дубликатов строк
Недавно мне попалась интересная задачка по SQL.
У вас есть таблица с 2 колонками: Id, Name. Но на колонках нет никаких ограничений. И получилось так что там если дубли и нам надо их удалить.
Пример таблички
В случае когда у нас нет ни одного уникального значения, мы можем использовать номер строки для идентификации записи для удаления.
; WITH DuplicatesForDelete(Row) AS (
SELECT ROW_NUMBER() OVER(PARTITION BY t1.Id, t1.Name ORDER BY Id, Name) AS Row
FROM TableWithDuplicates t1
)
DELETE FROM DuplicatesForDelete WHERE Row > 1