Задавайте вопросы, мы ответим
Вы не зашли.
Есть таблица coll из 10 полей. Порядка 35 000 000 записей
Есть 3 поля. назовем f1,f2,f3 которые не уникальны, а должны быть таковыми.
Делаю запрос
select f1,f2,f3, count(*) from coll group by f1, f2, f3 having count(*)>1
Обнаружил что отображенное количество count(*) каждого из дубля равно двум.
Соответственно записи обнаруженные этой выборкой надо удалить.
Как это сделать? Простые решения не получаются.
Неактивен
Прочтите до конца
http://sqlinfo.ru/forum/viewtopic.php?id=274
Неактивен
У меня чуть другая ситуация, сравнивать надо на дубликаты значений группы полей f1,f2,f3 вместе. Concat делать не вариант, долго слишком
т.е.
есть таблица
f1, f2, f3 f4 ... f10
1/ abc 12 ab xy ........
2/ abc 12 ab az .......
одну (любую) из этих записей надо убить
Неактивен
В общем ничего не осталось поделать как выгрузить результаты запроса в другую таблицу, и убить дубликаты сравнением. Как ни странно на 35000000 записей (таблица 2 Гб) затратилось пол секунды. Видимо благодаря индексу на эти 3 поля.
Неактивен
Ещё можно
Неактивен