From: Franco Bruno Borghesi <franco@akyasociados.com.ar>
To: rudi@oasis.net.au
Cc: pgsql-sql@postgresql.org
Subject: Re: Delete duplicates
Date: Sun, 22 Jun 2003 18:17:16 -0300 (ART)
Message-ID: <2976.200.59.66.253.1056316636.squirrel@webmail.akyasociados.com.ar> (raw)
In-Reply-To: <20030622091522.M37248@oasis.net.au>
References: <20030622091522.M37248@oasis.net.au>
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@postgresql.org
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-sql@postgresql.org
Cc: franco@akyasociados.com.ar, rudi@oasis.net.au
Subject: Re: Delete duplicates
In-Reply-To: <2976.200.59.66.253.1056316636.squirrel@webmail.akyasociados.com.ar>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox