powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Туплю с удалением дубликатов
9 сообщений из 9, страница 1 из 1
Туплю с удалением дубликатов
    #36544708
непонятно

здесь так:


DELETE FROM foo
WHERE id NOT IN (SELECT min(id)
FROM foo
GROUP BY hash HAVING count(*) >= 1)



так вот этот запрос удалит почти ВСЕ записи из базы - NOT IN

что неправильно курил автор? или я туплю?
...
Рейтинг: 0 / 0
Туплю с удалением дубликатов
    #36545027
N&V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
N&V
Гость
Дубликаты данных,
1. First, as always, backup your database. :)

Код: plaintext
1.
2.
3.
4.
DELETE FROM foo
       WHERE id NOT IN (SELECT min(id)
                        FROM foo
                        GROUP BY hash HAVING count(*) >=  1 )

Возможно у него все данные 100% дублируются/троятся ... десятирятся :)
...
Рейтинг: 0 / 0
Туплю с удалением дубликатов
    #36545078
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сюда попадут по одной с мин идом из дублей и те которые всего по одной в таблице:

Код: plaintext
SELECT min(id)    FROM foo   GROUP BY hash HAVING count(*) >=  1 

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

Код: plaintext
1.
2.
3.
DELETE FROM foo
       WHERE id NOT IN (SELECT min(id)
                        FROM foo
                        GROUP BY hash HAVING count(*) >=  1 )
...
Рейтинг: 0 / 0
Туплю с удалением дубликатов
    #36545190
помоему этот пример корректно функционирует

автор
delete TEST_DUPLICATE
where id not in (
select min(id)
from TEST_DUPLICATE
group by value
);


где id - первичный ключ

и судя по сообщению

Tolik_lv 22 февраля 2008, 14:16Остальные решения при реальной проверке на 34 тыс
записей не работают :(.
...
Рейтинг: 0 / 0
Туплю с удалением дубликатов
    #36545229
а, понятно, просто HAVING COUNT(*)>=1 не имеет в данном случае смысла

я попутал с действием ограничения HAVING COUNT(*)>1, когда действительно уникальные записи могут быть удалены

непонятно, зачем было писать это ограничение.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Туплю с удалением дубликатов
    #38768754
Фотография des1roer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то мне подсказывает что это правильно
Код: sql
1.
2.
3.
4.
5.
6.
delete TEST_DUPLICATE
where id not in (
select min(id)
from TEST_DUPLICATE
group by value
);


гл вот у меня прошло 15 минут с запуска и ничего не произошло. таблица на 300к строк
...
Рейтинг: 0 / 0
Туплю с удалением дубликатов
    #38768758
Фотография des1roer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все прах и тлен - вот правильный запрос
Код: sql
1.
2.
3.
4.
5.
6.
DELETE FROM "SC_Tag"."T_TagData" 
where "ID_TagData" in (
SELECT min("ID_TagData") 
 FROM "SC_Tag"."T_TagData" 
 GROUP BY "F_TagName_ID","F_Date","F_ConvertedValue" HAVING COUNT(*) > 1 ORDER BY COUNT(*)
 )
...
Рейтинг: 0 / 0
Туплю с удалением дубликатов
    #38768782
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
des1roerвсе прах и тлен - вот правильный запрос
Код: sql
1.
2.
3.
4.
5.
6.
DELETE FROM "SC_Tag"."T_TagData" 
where "ID_TagData" in (
SELECT min("ID_TagData") 
 FROM "SC_Tag"."T_TagData" 
 GROUP BY "F_TagName_ID","F_Date","F_ConvertedValue" HAVING COUNT(*) > 1 ORDER BY COUNT(*)
 )



если у вас не задвоение а затроение или больше то удалится только первый дубль из N

--Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Туплю с удалением дубликатов
    #38768900
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
секвенсы добавлять и всю таблицу апдейтить - это сильно накладно, а если еще и дублей много...

вот самое надежное:

create temp_table as select distinct * from foo;
truncate table foo;
insert into foo select * from temp_table;
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Туплю с удалением дубликатов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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