Re: Removing duplicate rows in table - Mailing list pgsql-general

From Rich Shepard
Subject Re: Removing duplicate rows in table
Date
Msg-id 265771f-f2c8-3c98-aebf-6239da97f3b2@appl-ecosys.com
Whole thread Raw
In response to Removing duplicate rows in table  (Rich Shepard <rshepard@appl-ecosys.com>)
List pgsql-general
On Tue, 10 Sep 2024, Andreas Kretschmer wrote:

> you can use the hidden ctid-column:
>
> postgres=# create table demo (id int, val text);
> CREATE TABLE
> postgres=# insert into demo values (1, 'test1');
> INSERT 0 1
> postgres=# insert into demo values (1, 'test1');
> INSERT 0 1
> postgres=# insert into demo values (1, 'test1');
> INSERT 0 1
> postgres=# insert into demo values (1, 'test1');
> INSERT 0 1
> postgres=# select ctid, * from demo;
>  ctid  | id |  val
> -------+----+-------
>  (0,1) |  1 | test1
>  (0,2) |  1 | test1
>  (0,3) |  1 | test1
>  (0,4) |  1 | test1
> (4 rows)
>
> postgres=# with my_ctid as (select min(ctid) from demo where id = 1 and val = 
> 'test1') delete from demo using my_ctid where id=1 and val='test1' and ctid 
> != my_ctid.min;
> DELETE 3
> postgres=# select ctid, * from demo;
>  ctid  | id |  val
> -------+----+-------
>  (0,1) |  1 | test1
> (1 row)

Thanks, Andreas.

Rich



pgsql-general by date:

Previous
From: Rich Shepard
Date:
Subject: Re: Removing duplicate rows in table
Next
From: Adrian Klaver
Date:
Subject: Re: Removing duplicate rows in table