|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.06.2009, 12:57 | #1 |
Участник клуба
Регистрация: 23.07.2007
Сообщений: 1,054
|
Убрать дуплетность
Такая проблема:
Существует большая база данных (Библиотечный книжный фонд: база для MarcSQL - если кто то знаком с этим). База Microsoft Access (mbd). В одном из полей хранится информация о книгах (поле Items в таблице Doc). Но бывало такое что книжки по два раза вносили. Нужно как то убрать дублетность(повторы) этих записей.
Писано по д'Эльфийски
Последний раз редактировалось Лубышев; 10.06.2009 в 13:03. |
10.06.2009, 13:23 | #2 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
если вам доступна ROW_NUMBER(), то существует простое решение
проверить можно хотя бы таким запросом (подставьте реальные названия полей, фильтр введен исключительно для уменьшения объема выборки) Код:
|
10.06.2009, 13:29 | #3 |
Участник клуба
Регистрация: 23.07.2007
Сообщений: 1,054
|
что то не то!
Блин я уже где то видел запрос, который бы удалял повторные записи!
Писано по д'Эльфийски
|
10.06.2009, 13:36 | #4 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
чего не то?
я спросил - работает запрос такого типа если да, то приведу простое решение |
10.06.2009, 13:40 | #5 |
Участник клуба
Регистрация: 23.07.2007
Сообщений: 1,054
|
не работает кажется такой функции вообще нет
Писано по д'Эльфийски
|
10.06.2009, 14:00 | #6 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
есть тогда менее тривиальные способы
1) завести доп.поле, в которое всем дублям проставить порядковый номер (тем самым получится дубли между собой различить) и дальше удалить все дубли, у которых номер больше минимального в каждой группе дублей, затем удалть доп.поле за ненадобностью 2) через доп.таблицу найти все дублирующие записи и с дистинктом их перелить в новую таблицу, удалить все дубли в старой и залить из новой в старую все записи, которые уже по определению не являются дублями |
16.06.2009, 10:27 | #7 |
Участник клуба
Регистрация: 23.07.2007
Сообщений: 1,054
|
написали запрос, который удаляет повторения сравнивая по одному полю и оставляет первую найденную запись, а остальные записи долой.
Код:
запрос хорошо работает на маленьком количестве записей. А вот когда их 50000 то тут проблема. Комп задумывается и не известно когда выполнится такой запрос. как бы это все оптимизировать?
Писано по д'Эльфийски
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Убрать повторы | ShnapS | БД в Delphi | 4 | 15.05.2009 23:03 |
убрать пробелы | zetrix | Microsoft Office Excel | 9 | 10.03.2009 10:03 |
Убрать HTML | JRcoker | JavaScript, Ajax | 10 | 29.09.2008 20:21 |
убрать рекламу. | алена (елена) | Софт | 4 | 21.09.2008 12:11 |
Убрать из uses | Маркъ | Общие вопросы Delphi | 3 | 03.02.2007 11:44 |