У меня очень большая таблица (~ 70 миллионов строк), в которой столбец id получен из другой таблицы. Идентификатор был назначен неправильно. 2 разных человека с разными именами получили одинаковый идентификатор, а им не следовало назначать его. Теоретически я понимаю, что самообъединение в одной и той же таблице, где идентификатор одинаков и первый не равен, должно работать, но с большим количеством строк запрос застрял. Любые идеи относительно того, как я могу продолжить?
Я пытался отфильтровать некоторые данные и скопировал содержимое в совершенно новую таблицу, но безрезультатно.
Мой код выглядит так
select distinct m1.first_name, m.first_name, m1.id from member m inner join member_1 m1 on m.id = m1.id and m.first_name <> m1.first_name
Данные выглядят так
run_id first_name id
1 aaaa 1
2 aaaa 1
3 aaaa 1
3 bbbb 2
3 cccc 3
4 aaaa 1
4 bbbb 4
5 bbbb 4
5 cccc 3
6 aaaa 1
6 bbbb 4
6 cccc 3
В этом случае, если вы заметили, в run_id 2 bbbb был назначен идентификатор 2, а в сериях 5 и 6 bbbb был назначен идентификатор 4. В этом случае bbbb, по-видимому, был назначен 2 идентификатора. Как мне только отфильтровывать такие строки, а не тянуть аааа и cccc. Использование различных ресурсов истощает мои ресурсы и, по-видимому, не является хорошим вариантом