Re: Delete duplicates

From: "Franco Bruno Borghesi" <franco(at)akyasociados(dot)com(dot)ar>
To: <rudi(at)oasis(dot)net(dot)au>
Cc: <pgsql-sql(at)postgresql(dot)org>
Subject: Re: Delete duplicates
Date: 2003-06-22 21:17:16
Message-ID: 2976.200.59.66.253.1056316636.squirrel@webmail.akyasociados.com.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

try this

DELETE FROM aap WHERE id NOT IN (
SELECT max(id)
FROM aap
GROUP BY keyword
);

>
>
> Hi,
>
> I have a table with duplicates and trouble with my SQL.
> I'd like to keep a single record and remove older duplicates.
> For example below of the 6 recods I'd like to keep records
> 4 and 6.
>
> TABLE: aap
> id | keyword
> ----+-----------------
> 1 | LEAGUE PANTHERS
> 2 | LEAGUE PANTHERS
> 3 | LEAGUE PANTHERS
> 4 | LEAGUE PANTHERS
> 5 | LEAGUE BRONCOS
> 6 | LEAGUE BRONCOS
>
> Here is my SQL so far, it will select records 1 to 5 instead
> of 1,2,3 and 5 only.
>
> Any help greatly appreciated. I think I need a Group By somewhere in
> there.
>
> select a1.id
> from aap a1
> where id < ( SELECT max(id) FROM aap AS a2 )
> AND EXISTS
> (
> SELECT *
> FROM aap AS a2
> WHERE a1.keyword = a2.keyword
> )
>
> Regards
> Rudi.
>
> ---------------------------(end of
> broadcast)--------------------------- TIP 1: subscribe and unsubscribe
> commands go to majordomo(at)postgresql(dot)org

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Tomasz Myrta 2003-06-22 21:23:16 virtual table
Previous Message Janning Vygen 2003-06-22 20:34:39 Re: Informing end-user of check constraint rules