1

Temat: Usuwanie duplikatów

Witam,
pewnie wiecie, więc chętnie skorzystam z pomocy (jeśli będziecie mieli ochotę pomóc przed/w/po weekendzie):
jak szybko usunąć duplikaty z tabeli- oczywiście chodzi mi o połowę duplikatów- tak by stały się unikalnymi danymi względem klucza-pola

Przychodzi mi do głowy tylko kursor, sprawdzanie pola dla każdego wiersza czy jest duplikatem (in select... sql wyławiający duplikaty), oraz usuwanie go jeśli tak i zmiana znacznika z false->true No wypadałoby jeszcze trzymać ostatnią wartość pola, które może być duplikatem - bo jeśli jest taka sama jak poprzednio - to decyduje o zmianie wspomniany znacznik (jesli true - nie usuwamy, bo juz usunięto) , jesli inna- DELETE

Ale może jest coś w rodzaju cudownego zapytania? ;-)


Pozdrawiam

Ostatnio edytowany przez roofoos (2009-07-31 15:57:25)

2

Odp: Usuwanie duplikatów

można to zrobić łatwo i przyjemnie

1. przy DELETE wraz z subselectem w WHERE
2. INSERT INTO X select distinct on (...,...) from Y ...

nie trzeba cursora. Można trzasnąć to jednym zapytaniem smile

Pozdrawiam
Pawel Socha

3

Odp: Usuwanie duplikatów

delete from t where oid not in (select  distinct on(i,j) oid from t);

4

Odp: Usuwanie duplikatów

Dzięki Panowie!
Poradziłem sobie przy użyciu 2ego sposobu gdyż tego wszystkiego okazało się nie byc tak dużo, więc pgadmin + sql i poszło insert, delete, insert wink

Ale raz jeszcze dziękuję za inny punkt widzenia!