Вниз
Скачать: 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.012 c
3-28656
CASU
2003-01-22 11:16
2003.02.10
Как отобразить процесс передачи данных на сервер?


14-29049
Sergo
2003-01-24 10:00
2003.02.10
TeeChart Pro 5


1-28875
Whippi
2003-01-30 09:43
2003.02.10
Програма по защите информации. Нужна помощь.


1-28897
Uncle Archi
2003-01-29 22:25
2003.02.10
JPG


14-29021
Mystic
2003-01-23 21:28
2003.02.10
Вейк-ан-Зее




   Наверх