From: Iain <iain@mst.co.jp>
To: Rod Taylor <pg@rbt.ca>
To: Philippe Lang <philippe.lang@attiksystem.ch>
Cc: pgsql-sql@postgresql.org
Subject: Re: Reuse previously calculated column in sql query?
Date: Thu, 21 Oct 2004 10:31:00 +0900
Message-ID: <008f01c4b70d$a22184a0$7201a8c0@mst1x5r347kymb> (raw)
References: <6C0CF58A187DA5479245E0830AF84F42080442@poweredge.attiksystem.ch>
<1098277537.747.91.camel@home>
Using the the sub-select is one way, but there is another way.
If the function can be declared as strict or immutable the you can call it
as many times as you like in a single transaction and it will only be
evaluated once. As far as I know this does work as advertised.
Check the SQL commands reference section of the manual for CREATE FUNCTION
Regards
Iain
----- Original Message -----
From: "Rod Taylor" <pg@rbt.ca>
To: "Philippe Lang" <philippe.lang@attiksystem.ch>
Cc: <pgsql-sql@postgresql.org>
Sent: Wednesday, October 20, 2004 10:05 PM
Subject: Re: [SQL] Reuse previously calculated column in sql query?
> On Wed, 2004-10-20 at 08:50, Philippe Lang wrote:
>> Hello,
>>
>> Is it possible to reuse a previously calculated column in a following
>> column, like:
>
> SELECT col1
> , col2
> , col2 * 0.75 AS col3
> FROM (SELECT foo.val1 AS col1
> , long_calculation(foo.val1) AS col2
> FROM foo) AS tab;
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/docs/faqs/FAQ.html
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-sql@postgresql.org
Cc: iain@mst.co.jp, pg@rbt.ca, philippe.lang@attiksystem.ch
Subject: Re: Reuse previously calculated column in sql query?
In-Reply-To: <008f01c4b70d$a22184a0$7201a8c0@mst1x5r347kymb>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox