Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.10;
Скачать: CL | DM;

Вниз

Удалить все дубликаты записей   Найти похожие ветки 

 
Behemoth ©   (2003-01-24 14:28) [0]

В таблице Calls одно автоинкрементное поле ID и два десятка других (Field1..Field20). Узнать что это дубликат записи можно только по совокупности всех 20 полей. Так вот надобно убить дубликаты.
SELECT DISTINCT Field1,..,Field20 FROM Calls показывает все уникальные, а надо изничтожить остальные


 
Anatoly Podgoretsky ©   (2003-01-24 14:35) [1]

У тебя база есть?


 
Behemoth ©   (2003-01-24 14:37) [2]

Простите.... MS SQL 2000


 
Cu ©   (2003-01-24 14:42) [3]

мда.. кроме как вытащить distinct-ом во временную таблицу
то что тебе в итоге надо, почистить таблицу и перелить
в неё данные из временной таблицы придумать не могу :-/


 
stone ©   (2003-01-24 14:42) [4]

примерно так:

delete from Calls from Calls c where exists (select * from Calls where Field1 = c.Field1 and ... Field20 = c.Field20 and ID > c.ID)


 
Reindeer Moss Eater   (2003-01-24 14:43) [5]

delete from table where id not in (select max(id) from table group by f1,......f20)


 
neXt ©   (2003-01-24 14:43) [6]

Можно, используя запрос

SELECT DISTINCT Field1,..,Field20 FROM Calls

сложить всё в отдельную таблицу (временную)
Далее, в Calls грохнуть всё и залить в неё уникальные записи из временной таблицы.


 
roottim   (2003-01-24 14:48) [7]

примерная реализация всего сказанного ( я так понимаю никакого уникального id и в помине нет, т.к строки полностью идентичны)

create table temp_table as select distinct * from my_table;
delete table my_table;
insert into my_table select * from temp_table;
drop table temp_table;

если в my_table записей до едрени фени кое-где надо усложнить запрос.. но принцип то-тже...


 
neXt ©   (2003-01-24 14:55) [8]

>>roottim
>> уникального id и в помине нет,
Может и есть, Behemoth говорит, что дублироваться могут записи по всем другим полям, кроме ID. Так что ...select distinct * from... не подойдёт, нужно перечислять все поля, кроме ID.


 
Behemoth ©   (2003-01-24 14:57) [9]

to roottim^: а записей тама именно стоко (в месяц добавляется по 700 000), а хранить их надо где-то год....Это долговато...


 
neXt ©   (2003-01-24 15:01) [10]

Нужно, тогда проверять на уникальность при добавлении, а не отлавливать повторы после.


 
Behemoth ©   (2003-01-24 15:06) [11]

to neXT: да....похоже это правильнее.
Спасибо всем!!


 
roottim   (2003-01-24 15:29) [12]

извените... незаметил ID
к слову:
вопрос о проверке при вставке корректен, когда вставка выполняется скажем в ручную, а ежели загружать пачками, тот тут еще вопрос...


 
Anatoly Podgoretsky ©   (2003-01-24 15:42) [13]

В этом случае надо заботиться еще раньше



Страницы: 1 вся ветка

Текущий архив: 2003.02.10;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.028 c
4-29149
Vladimir_Shk
2002-12-26 11:37
2003.02.10
Закрытие окна


1-28895
zedov
2003-01-30 21:34
2003.02.10
bufer


3-28597
SZap
2003-01-22 13:40
2003.02.10
Как конвертировать Log файл (текст разделенный запятыми) в DBF???


3-28640
_landy
2003-01-23 09:12
2003.02.10
Query из VirtualTable


14-29045
ZeroDivide
2003-01-24 14:33
2003.02.10
Запорол CD при прожиге. Надо восстановить.