Re: Removing duplicate rows in table
Muhammad Usman Khan <usman.k@bitnine.net>
From: Muhammad Usman Khan <usman.k@bitnine.net>
To: Rich Shepard <rshepard@appl-ecosys.com>
Cc: pgsql-general@postgresql.org
Date: 2024-09-12T04:06:00Z
Lists: pgsql-general
Hi, You can try the following CTE which removes all the identical rows and only leave single row WITH CTE AS ( SELECT ctid, ROW_NUMBER() OVER (PARTITION BY proj_nbr, proj_name, start_date, end_date, description, notes ORDER BY proj_nbr) AS rn FROM projects WHERE proj_nbr = '4242.02' ) DELETE FROM projects WHERE ctid IN ( SELECT ctid FROM CTE WHERE rn > 1 ); On Tue, 10 Sept 2024 at 20:07, Rich Shepard <rshepard@appl-ecosys.com> wrote: > I've no idea how I entered multiple, identical rows in a table but I want > to > delete all but one of these rows. > > Here's an example: > > bustrac=# select * from projects where proj_nbr = '4242.01'; > proj_nbr | proj_name | start_date | end_date | description | > notes > > ----------+----------------+------------+------------+---------------+------- > 4242.01 | Expert witness | 2008-10-15 | 2008-10-28 | Consol Energy | > 4242.01 | Expert witness | 2008-10-15 | 2008-10-28 | Consol Energy | > 4242.01 | Expert witness | 2008-10-15 | 2008-10-28 | Consol Energy | > 4242.01 | Expert witness | 2008-10-15 | 2008-10-28 | Consol Energy | > (4 rows) > > How do I clean this up so there's only a single row for this project > number? > > TIA, > > Rich > > >