Search Postgresql Archives

Re: SQL for Deleting all duplicate entries

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Merlin,

Its just about three columns - not any column. Two columns are 
varchars and the third is
a date. The date column value is NULL  for the rows for which 
I want to delete the duplicates.

Yes, please, be a bit more specific!

/regards, Håkan Jacobsson


>----Ursprungligt meddelande----
>Från: mmoncure@xxxxxxxxx
>Datum: 06-09-2007 01:56
>Till: "Håkan Jacobsson"<hakan.jacobsson99@xxxxxxxxxxxx>
>Kopia: <pgsql-general@xxxxxxxxxxxxxx>
>Ärende: Re:  SQL for Deleting all duplicate entries
>
>On 9/5/07, Håkan Jacobsson <hakan.jacobsson99@xxxxxxxxxxxx> 
wrote:
>> Hi,
>>
>> I want to create a DELETE statement which deletes 
duplicates
>> in a table.
>>
>> That is, I want to remove all rows - but one - having three
>> columns with the same data (more columns exist and there 
the
>> data varies).
>> For example:
>> column1
>> column2
>> column3
>> column4
>> column5
>>
>> column2 = 'test', column3 = 'hey' and column4 IS NULL for
>> several rows in the table. I want to keep just one of those
>> rows.
>>
>> Is this possible? I can't figure it out, so any help MUCH
>> appreciated!
>
>when removing duplicates, I find it is usually better to look 
at this
>problem backwards...you want to select out the data you want 
to keep,
>truncate the original table, and insert select the data back 
in.
>
>What isn't exactly clear from your question is if you are 
interested
>in only particular fields or if you want to throw out based 
on any
>columns (nut just 2, 3, and 4).  If so, this is a highly 
irregular
>(and interesting) problem, and should prove difficult to make
>efficient.
>
>If you are only interested in three particular columns, then 
it's easy.
>1. select out data you want to keep using create table 
scratch SELECT
>DISTINCT ON or GROUP BY into scratch
>2. truncate main table
>3. insert into main select * from scratch
>
>for a more specific answer, you will have to provide some 
more detail,
>especially regarding exactly how you determine two rows as 
being
>'duplicates'.
>
>merlin
>



---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
       subscribe-nomail command to majordomo@xxxxxxxxxxxxxx so that your
       message can get through to the mailing list cleanly


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux