Re: Removing duplicate rows in table
От | Rich Shepard |
---|---|
Тема | Re: Removing duplicate rows in table |
Дата | |
Msg-id | 265771f-f2c8-3c98-aebf-6239da97f3b2@appl-ecosys.com обсуждение исходный текст |
Ответ на | Removing duplicate rows in table (Rich Shepard <rshepard@appl-ecosys.com>) |
Список | 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 по дате отправления: