Re: Update table with max occurance from another table

From: Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com>
To: Dan Winslow <d(dot)winslow(at)cox(dot)net>
Cc: <pgsql-general(at)postgresql(dot)org>
Subject: Re: Update table with max occurance from another table
Date: 2002-11-19 19:17:08
Message-ID: 20021119110924.D68336-100000@megazone23.bigpanda.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Tue, 19 Nov 2002, Dan Winslow wrote:

> And given the following task :
>
> update a from b such that a.maxtype is set equal to the b.type whose val
> number is the highest for that matching id, that is, the result :

As a starting point, not using the postgresql extensions, or any thought
to make it more efficient, maybe something like:

update a set maxtype=(select type from b where b.id=a.id and
b.val=(select max(val) from b as c where c.id=b.id));

I think using postgres extensions, you could do this as:
update a set maxtype=b.type from (select distinct on (id) id, type
from b order by id, val desc) as b where a.id=b.id;

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Mike Beachy 2002-11-19 19:19:46 Re: Update table with max occurance from another table
Previous Message Doug McNaught 2002-11-19 19:07:52 Re: selecting the last record from a table