Re: Create loop in postgresql

From: Rainer Pruy <Rainer(dot)Pruy(at)Acrys(dot)COM>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: Create loop in postgresql
Date: 2012-09-03 15:56:41
Message-ID: 5044D339.3040500@acrys.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

And probably the op
would prefer to avoid recalculating the sum once for every row.....

select name,ges_kw_zgb, round(100*ges_kw_zgb/total.totalsum, 2) as z
from energie.tennet_auswertung_2010, (select sum(ges_kw_zgb) totalsum
>From energie.tennet_auswertung_2010) as total
where ......

Regards
Rainer

On 03.09.2012 17:45, salah jubeh wrote:
> I am wondering why do not you write it like this
>
> select name,ges_kw_zgb, select round(100 * (ges_kw_zgb / (select
> sum(ges_kw_zgb) From energie.tennet_auswertung_2010)),2) ......
>
> Regards
>
>
> ------------------------------------------------------------------------
> *From:* Robert Buckley <robertdbuckley(at)yahoo(dot)com>
> *To:* "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
> *Sent:* Monday, September 3, 2012 5:30 PM
> *Subject:* [GENERAL] Create loop in postgresql
>
> Hi,
>
> I am trying to loop through the records in a table and update a
> column. I can do this with a case statement but I would like to
> simplify this to a simple loop statement. I can´t seem to work out how
> to do it though.
>
> Here is the case statement.
>
> select name,ges_kw_zgb,
> case
> When name='Bad Harzburg' then (select round(100 * (ges_kw_zgb /
> (select sum(ges_kw_zgb) From energie.tennet_auswertung_2010)),2))
> When name='Braunlage' then (select round(100 * (ges_kw_zgb / (select
> sum(ges_kw_zgb) From energie.tennet_auswertung_2010)),2))
> When name='Braunschweig' then (select round(100 * (ges_kw_zgb /
> (select sum(ges_kw_zgb) From energie.tennet_auswertung_2010)),2))
> When name='Büddenstedt' then (select round(100 * (ges_kw_zgb / (select
> sum(ges_kw_zgb) From energie.tennet_auswertung_2010)),2))
>
> End as z
>
> from energie.tennet_auswertung_2010
> ;
>
>
> Instead of having to write the name variable in the function, I would
> just like to iterate through each record and execute the select
> round(100 * (ges_kw_zgb / (select sum(ges_kw_zgb) From
> energie.tennet_auswertung_2010)),2) command.
>
> If anyone can help I´d me grateful,
>
> cheers,
>
> Rob
>
>

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Robert Buckley 2012-09-03 16:06:58 Re: Create loop in postgresql
Previous Message salah jubeh 2012-09-03 15:45:16 Re: Create loop in postgresql