Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.01 c
1-28894
XPatriot[d.m.b]
2003-01-30 20:55
2003.02.10
Графическая область


14-29064
Ru
2003-01-24 16:56
2003.02.10
Вера в компьютер или современный фетишизм


1-28847
Zirus
2003-02-03 05:21
2003.02.10
Колесо


14-29094
RV
2003-01-23 13:52
2003.02.10
Как все в мире относительно.........


7-29134
MSAlex
2002-12-08 15:00
2003.02.10
Floppy





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский