Re: duplicates

Поиск
Список
Период
Сортировка
От Patrik Kudo
Тема Re: duplicates
Дата
Msg-id 38EDC62A.77BBB73D@partitur.se
обсуждение исходный текст
Ответ на duplicates  (Allan Kelly <allan.kelly@buildstore.co.uk>)
Список pgsql-sql
Hi Allan

Firstly I'd suggest a unique index on the column that should be unique
to force uniqueness on that column. But since you already have double
tuples, you can do the following:

delete from subscribers where exists (select 1 from subscribers s where s.user_name = subscribers.user_name  and s.oid
>subscribers.oid)
 

I'm not 100% certain it'll do the work right, so PLEASE try it out with
a testtable first =)

Regards,
Patrik Kudo

Allan Kelly wrote:
> 
> I have a system bug which means that I have occasional dupicate entries in
> my 'subscribers' table. I'm trying to find a query which performs something
> like a 'where user_name is not unique' query.
> 
> At the moment we use this cludge:
> 
> select count(*), user_name from subscribers
>         group by user_name order by count;
> 
> (I'm surprised I can't add 'where count > 1' but it seems conditionals on
> aggregate fields are not allowed).
> 
> This gives me a very long list with the 'not unique' entries at the bottom, eg
> 
> count | user_name
> ------+------------------
> 1     | bill.hicks
>   [ ..cut 9 zillion results.. ]
> 1     | margaret.thatcher
> 4     | linus.torvalds
> 9     | bill.gates
> 
> I then have to do
> 
> select oid from subscribers where user_name = 'linus.torvalds';
> 
> and delete all but one of the records. Is there a better way to do this?
> And yes, we're working on a system fix to avoid the problem in the 1st place!
> 
> TIA, al.


В списке pgsql-sql по дате отправления:

Предыдущее
От: Allan Kelly
Дата:
Сообщение: duplicates
Следующее
От: Patrik Kudo
Дата:
Сообщение: Re: duplicates