Search Postgresql Archives

Re: SQL for Deleting all duplicate entries

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

 



Thanx Merlin, have a nice one (vacation)!

It turns out I have'nt described the problem accurately=(
Data may actually differ in two of the columns (the varchar 
columns).
I still want to remove rows which share the same data in those 
two columns and have the date column
set to NULL.
I.e. row 1,2,3  have:
      column1 = 'foo', column2 = 'hey' and the date column = 
NULL
      row 4,5,6 have:
      column1 = 'brat', column2 = 'yo' and the date column = 
NULL
I want to keep just one of the 1 - 3 rows and one of the 4 - 6 
rows..

I will try Merlins and Scotts solutions tomorrow. Anyone know 
if I need to modify Merlins and/or Scotts
solutions to solve this new situation?

/best regards, Håkan
      

>----Ursprungligt meddelande----
>Från: mmoncure@xxxxxxxxx
>Datum: 09-09-2007 15:42
>Till: "Håkan Jacobsson"<hakan.jacobsson99@xxxxxxxxxxxx>
>Kopia: <pgsql-general@xxxxxxxxxxxxxx>
>Ärende: Re:  SQL for Deleting all duplicate entries
>
>On 9/9/07, Håkan Jacobsson <hakan.jacobsson99@xxxxxxxxxxxx> 
wrote:
>> 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.
>
>
>getting ready to go on vacation :).  The idea is you want to 
write a
>query that pulls out the data you want to keep.   If you have 
a table
>with 6 fields, f1 though f6 and you only want one record with
>identical values of f1, f2, f3, you might do:
>
>begin;
>create temp table scratch as
>  select f1, f2, f3, max(f4), max(f5), max(f6) from foo group 
by f1, f2, f3;
>
>truncate foo;
>
>insert into foo select * from scratch;
>commit;
>
>You can replace max() with any suitable aggregate you deem 
gets you
>the best data out of the record.  If you are feeling really 
clever,
>you can write a custom aggregate for the record type (it's 
easier than
>you think!)
>
>merlin
>



---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings


[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