sub select as a data column
I am having trouble coming up with words to describe exactly what I need so
searching for a solution is getting frustrating! If this has been answered
twelve hundred times - please forgive me!
I want to do in postgresql what I do in oracle:
select year report_year,
sum(amount),
sum(select amount from my_table where year <= report_year)
from my_table
group by report_year;
I see lots of stuff on subselect in the from clause - but how do you
subselect as a data column?
Thanks for the help - it is SEVERLY appreciated!
Ronni
Import Notes
Reply to msg id not found: 7838141f0511281204q18b580a0n64f5a0eba6ba6dec@mail.gmail.comReference msg id not found: 7838141f0511281204q18b580a0n64f5a0eba6ba6dec@mail.gmail.com
you were close, try the following (untesting). You need the alias on the outer my_table for this to work
select year report_year,
sum(amount),
sum(select amount from my_table where year <= a.year)
from my_table a
group by report_year;
---------- Original Message -----------
From: Phong & Ronni Bounmixay <bounmixay@gmail.com>
To: pgsql-general@postgresql.org
Sent: Mon, 28 Nov 2005 13:18:41 -0700
Subject: [GENERAL] sub select as a data column
I am having trouble coming up with words to describe exactly what I need so
searching for a solution is getting frustrating! If this has been answered
twelve hundred times - please forgive me!I want to do in postgresql what I do in oracle:
select year report_year,
sum(amount),
sum(select amount from my_table where year <= report_year)
from my_table
group by report_year;I see lots of stuff on subselect in the from clause - but how do you
subselect as a data column?Thanks for the help - it is SEVERLY appreciated!
Ronni
------- End of Original Message -------
Phong & Ronni Bounmixay <bounmixay@gmail.com> writes:
I want to do in postgresql what I do in oracle:
select year report_year,
sum(amount),
sum(select amount from my_table where year <= report_year)
from my_table
group by report_year;
That doesn't really work in Oracle does it? It violates the SQL spec
in at least three ways. Try something like
select year as report_year,
sum(amount),
sum((select amount from my_table b where b.year <= a.year))
from my_table a
group by year;
(which should work in Oracle too, or any other SQL-spec-compliant
database). Note the extra parentheses ... they're not optional.
regards, tom lane
You both are SO right! I sent that off and tried a couple of things and
realized I was close but not close enough. I really appreciate the kind
responses. Sometimes it's so hard to ask a question without feeling so
foolish and then feeling worse when the answers are sarcastic. Thank you!
Good luck to you both! You do such a good job in this group!
Ronni
Show quoted text
On 11/28/05, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Phong & Ronni Bounmixay <bounmixay@gmail.com> writes:
I want to do in postgresql what I do in oracle:
select year report_year,
sum(amount),
sum(select amount from my_table where year <= report_year)
from my_table
group by report_year;That doesn't really work in Oracle does it? It violates the SQL spec
in at least three ways. Try something likeselect year as report_year,
sum(amount),
sum((select amount from my_table b where b.year <= a.year))
from my_table a
group by year;(which should work in Oracle too, or any other SQL-spec-compliant
database). Note the extra parentheses ... they're not optional.regards, tom lane