powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Удаление "дубликатов" из БД
7 сообщений из 7, страница 1 из 1
Удаление "дубликатов" из БД
    #34725059
twistfire
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

Есть вопрос - как удалить повторяющиеся строки из таблицы, если одно поле может быть отлично от поля дублируемой записи?

Подробнее:
есть таблица - tel
в ней много записей - номера телефонов, адреса, описания организаций....

при вставке использовались различные источники - соответственно есть различные данные об одном и том же адресе, но! есть и одинаковые - различие только в дате добавления записи (поле date_add) - дата для двух одинаковых по содержнию строк разная. Мне и нужно удалить записи, которые "старые" и повторяют более новые за исключением поля дата.

Как это сделать?
...
Рейтинг: 0 / 0
Удаление "дубликатов" из БД
    #34725438
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с помощью запроса

select distinct on (number,address,info) number,address,info,add_date from tel order by number,address,info,add_date;
...
Рейтинг: 0 / 0
Удаление "дубликатов" из БД
    #34725603
twistfire
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так я понимаю получу только уникальные записи?
...
Рейтинг: 0 / 0
Удаление "дубликатов" из БД
    #34725702
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
twistfireтак я понимаю получу только уникальные записи?Точно!

Например delete from tel where (number,address,info,add_date) not in (select ...); -- возможно медленный запрос

Или с помощью временной таблицы, если есть записи, у которых совпадают все поля, включая add_date.
...
Рейтинг: 0 / 0
Удаление "дубликатов" из БД
    #34727447
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
twistfireтак я понимаю получу только уникальные записи?

у вас в таблице есть первичный ключ? если да, то задача решается просто.
Если нет, добавьте его, чтобы не возиться и не сравивать все поля
...
Рейтинг: 0 / 0
Удаление "дубликатов" из БД
    #34727961
twistfire
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuh twistfireтак я понимаю получу только уникальные записи?

у вас в таблице есть первичный ключ? если да, то задача решается просто.
Если нет, добавьте его, чтобы не возиться и не сравивать все поля

не понял...
у меня есть первичный ключ -
id - Serial Primary Key;

объясните еще раз, пожалуйста..
...
Рейтинг: 0 / 0
Удаление "дубликатов" из БД
    #34730559
wbear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
delete from table where id not in (select min(id) from table group by addr,phone,..... )

(addr,phone... = все поля без кроме даты и id )


select min(id) from table group by addr,phone,.....
выбираем ид перывой вставненной записи с одинаковыми адресами телефонами и т.д
сюда так же попадут записи у которых нет дублей по полям .

остальные ид соответственно будут у дубликатов. их и удаляем.


вроде так... потренируйся на "кошках"..
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Удаление "дубликатов" из БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]