Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.02 c
1-28834
UDS
2003-02-02 20:07
2003.02.10
Как открыть текстовый файл?


14-29070
Думкин
2003-01-25 10:14
2003.02.10
Татьянин день


3-28587
VinRaider
2003-01-24 09:11
2003.02.10
Изменение цвета


14-28996
Zhenka
2003-01-26 14:36
2003.02.10
Ув. Господа. кто нибудь знает


3-28667
Vick
2003-01-22 13:02
2003.02.10
Группировка в ClientDataSet или Гриде




   Наверх