У меня есть таблица с более чем 500 000 записей и полями для идентификатора, имени, фамилии и адреса электронной почты. Что я пытаюсь сделать, так это найти строки, в которых имя и фамилия являются дубликатами (поскольку у одного и того же человека есть два отдельных идентификатора, адреса электронной почты или что-то еще, они находятся в таблице более одного раза). Я думаю, что знаю, как найти дубликаты с помощью GROUP BY, вот что у меня есть:
SELECT first_name, last_name, COUNT(*)
FROM person_table
GROUP BY first_name, last_name
HAVING COUNT(*) > 1
Проблема в том, что мне нужно переместить всю строку с этими повторяющимися именами в другую таблицу. Есть ли способ найти дубликаты и получить всю строку? Или хотя бы получить идентификаторы? Я попытался использовать самосоединение, но получил больше строк, чем было в таблице с самого начала. Будет ли это лучшим подходом? Любая помощь будет принята с благодарностью.
John Smith
:) - person ypercubeᵀᴹ   schedule 14.10.2011