Главная страница
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.012 c
14-29029
Chubais
2003-01-23 18:31
2003.02.10
Поиск ошибок


1-28732
Paladin
2003-01-30 18:32
2003.02.10
Автоматическое создание класса.


1-28772
Alex
2003-02-01 14:14
2003.02.10
TStringgrid


1-28929
kva
2003-01-31 10:54
2003.02.10
Глюк UpDown


14-28990
Suntechnic
2003-01-25 21:37
2003.02.10
А я то думаю почему сегодня с утра сайт был в дауне...