Re: update with multiple fields as aggregates
От | Volkan YAZICI |
---|---|
Тема | Re: update with multiple fields as aggregates |
Дата | |
Msg-id | 87tzhffo8u.fsf@alamut.mobiliz.com.tr обсуждение исходный текст |
Ответ на | update with multiple fields as aggregates (Alexy Khrabrov <deliverable@gmail.com>) |
Список | pgsql-sql |
On Sat, 3 May 2008, Alexy Khrabrov <deliverable@gmail.com> writes: > I need to fill two columns of a Rats table from an Offset1 table, > where for each Id row in Rats we need to fill an average offset and > the sum of all offset from Offset1 with the same Id. I can create a > derivative table like this: > > create table ofrats as (select customer_id as cid,avg(o),sum(o) from > offset1 group by cid); > > But if I want to insert the two values into the Rats directly, I get > an error: > > netflix=> update rats r1 set of1=s.ao, sumof1=s.so from (select avg(o) > as ao,sum(o) as so from rats,offset1 o1 where o1.customer_id=r1.id > group by id) as s; > ERROR: subquery in FROM cannot refer to other relations of same query > level I didn't try but, here is my 2 cents: UPDATE rats SET of1 = tmp.of1, sumof1 = tmp.sumof1 FROM (SELECT id, AVG(o) AS of1, SUM(o) AS sumof1 FROM rats, offset1 GROUP BY id) AS tmp WHERE tmp.id = rats.id; Regards.
В списке pgsql-sql по дате отправления: