Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Дублирующиеся записи в таблице [D5, Paradox]


Viz ©   (2004-07-12 18:28:00) 

Подскажите, как с помощью SQL проще всего удалить дублирующиеся записи в таблице? Работаю с Paradox через TQuery. В таблице около 10000 строк, около 50 из них повторяются.


P.N.P.   (2004-07-12 20:30:00) [1]

Попробуй так :
delete from
MyTable t1
where
t1.id<>
(
select min(t2.id)
from
 MyTable t2
where
 t2.f1=t1.f1 and
 t2.f2=t1.f2 and
 t2.id<>t1.id

)


Viz   (2004-07-12 19:17:00) [2]

У каждой записи есть поле ID_REC (автоинкремент), по этому полю создан первичный ключ. Эти поля (ID_REC) в дублирующихся записях конечно разные, а совпадения во всех остальных полях, кроме ID_REC.


Anatoly Podgoretsky   (2004-07-12 18:57:00) [3]

Зачем, а для чего тогда предикат distinct.
Но такая таблица без первичных ключей не должна жить.


Reindeer Moss Eater   (2004-07-12 18:43:00) [4]

Ну и еще:
Если две записи дублируются (полностью идентичны), то средствами SQL невозможно удалить только одну из них.


Поручик   (2004-07-12 18:43:00) [5]

Выбери все с группировкой и слей результат в другую таблицу


Reindeer Moss Eater   (2004-07-12 18:35:00) [6]

проще всего удалить дублирующиеся записи

около 50 из них повторяются.

Руками проще


Наверх

Титульная страница Поиск, карта сайта Написать письмо