pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Paul Thomas <paul@tmsl.demon.co.uk>
To: pgsql-sql @ postgresql . org <pgsql-sql@postgresql.org>
Subject: Re: Delete duplicates
Date: Sun, 22 Jun 2003 12:03:35 +0100
Message-ID: <20030622120335.C4067@bacon> (raw)
In-Reply-To: <20030622091522.M37248@oasis.net.au>
References: <20030622091522.M37248@oasis.net.au>


On 22/06/2003 10:15 Rudi Starcevic wrote:
> 
> 
> 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
> )

I just tries this with 7.3.3:

select max(id), keyword from aap where keyword in (select distinct keyword 
from aap) group by keyword;

  max |     keyword
-----------------------
    6 | LEAGUE BRONCOS
    4 | LEAGUE PANTHERS
(2 rows)

HTH

-- 
Paul Thomas
+------------------------------+---------------------------------------------+
| Thomas Micro Systems Limited | Software Solutions for the Smaller 
Business |
| Computer Consultants         | 
http://www.thomas-micro-systems-ltd.co.uk   |
+------------------------------+---------------------------------------------+



view thread (10+ messages)  latest in thread

Message-ID: <20030622120335.C4067@bacon>
Permalink:  ../20030622120335.C4067@bacon/
Also on:    postgresql.org/message-id/20030622120335.C4067@bacon

 · 

reply

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: paul@tmsl.demon.co.uk
  Subject: Re: Delete duplicates
  In-Reply-To: <20030622120335.C4067@bacon>

* 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