Как найти дубликаты записей в таблице по определенному полю?
Уровень: Middle
Ответ
Можно сгруппировать строки по этому полю и посмотреть, у каких групп счетчик > 1. Например: SELECT field, COUNT(*) FROM Table GROUP BY field HAVING COUNT(*) > 1. Этот запрос покажет значения поля, которые повторяются (и сколько раз). Чтобы получить сами дублирующиеся записи, затем можно выбрать из исходной таблицы: SELECT * FROM Table WHERE field IN (...список дублирующихся значений...). Также иногда используют оконную функцию ROW_NUMBER() и помечают вторые и последующие записи – у таких ROW_NUMBER > 1, и их можно считать дубликатами.