Форум: "Базы";
Текущий архив: 2003.02.10;
Скачать: [xml.tar.bz2];
ВнизУдалить все дубликаты записей Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c