удалить повторяющиеся строки - PullRequest
2 голосов
/ 29 июня 2009

Кто-нибудь знает, как я могу удалить повторяющиеся строки, написав новый способ из приведенного ниже сценария для повышения производительности.

DELETE lt1 FROM #listingsTemp lt1, #listingsTemp lt2
    WHERE lt1.code = lt2.code and lt1.classification_id > lt2.classification_id and (lt1.fap < lt2.fap or lt1.fap = lt2.fap)

Ответы [ 4 ]

3 голосов
/ 29 июня 2009

Удалить повторяющиеся строки в таблице SQL :

delete table_a
where rowid not in 
(select min(rowid) from table_a 
group by column1, column2);
1 голос
/ 29 июня 2009

1 - Создайте столбец идентификаторов (ID) для вашей таблицы (t1) 2 - Составьте группу на вашем столе с вашими условиями и получите идентификаторы дублированных записей. 3 - Теперь просто удалите записи из t1, в которых установлены идентификаторы В дублированных идентификаторах.

0 голосов
/ 29 июня 2009

odiseh ответ кажется правильным (+1), но если по какой-то причине вы не можете изменить структуру таблицы (потому что у вас нет кода приложений, которые ее используют или что-то еще), вы могли бы написать задание, которое выполняется каждую ночь и удаляет дубликаты (используя код Моаяда Мардини).

0 голосов
/ 29 июня 2009

Посмотрите на BINARY_CHECKSUM .... вы можете использовать его при создании временных таблиц, чтобы быстрее определить, совпадают ли данные .... например, создать новое поле в обеих временных таблицах сохраняя значение binary_checksum ... затем просто удалите, где эти поля равны

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...