Re: how to remove the duplicate records from a table - Mailing list pgsql-general

From Albe Laurenz
Subject Re: how to remove the duplicate records from a table
Date
Msg-id D960CB61B694CF459DCFB4B0128514C2029660B3@exadv11.host.magwien.gv.at
Whole thread Raw
In response to how to remove the duplicate records from a table  (Yi Zhao <yi.zhao@alibaba-inc.com>)
Responses Re: how to remove the duplicate records from a table  (Robert Treat <xzilla@users.sourceforge.net>)
List pgsql-general
Yi Zhao wrote:
> I have a table contains some duplicate records, and this table create
> without oids, for example:
>  id | temp_id 
> ----+---------
>  10 |       1
>  10 |       1
>  10 |       1
>  20 |       4
>  20 |       4
>  30 |       5
>  30 |       5
> I want get the duplicated records removed and only one is reserved, so
> the results is:
> 10 1
> 20 4
> 30 5
> 
> I know create a temp table will resolve this problem, but I don't want
> this way:)
> 
> can someone tell me a simple methold?

Don't know if you'd call that simple, but if the table is
called "t", you could do

DELETE FROM t t1 USING t t2
WHERE t1.id = t2.id AND t1.temp_id = t2.temp_id AND t1.ctid > t2.ctid;

Yours,
Laurenz Albe

pgsql-general by date:

Previous
From: Markus Wanner
Date:
Subject: Re: [Pkg-postgresql-public] Postgres major version support policy on Debian
Next
From: Martin Pitt
Date:
Subject: Re: [Pkg-postgresql-public] Postgres major version support policy on Debian