Re: WHERE on an alias - Mailing list pgsql-sql

From Josh Berkus
Subject Re: WHERE on an alias
Date
Msg-id web-107962@davinci.ethosmedia.com
Whole thread Raw
In response to WHERE on an alias  (Joseph Shraibman <jks@selectacast.net>)
List pgsql-sql
Joseph,

> playpen=# select a, sum(b) as dsum from taba where dsum > 5 group
> by(a);
> ERROR:  Attribute 'dsum' not found
> 
> Why can we GROUP BY on an alias but not do a WHERE on an alias?  I
> have a subselect that 
> explain shows is being run twice if I have to put it in the WHERE
> clause.

Ah, but you are not trying to do a WHERE on an alias ... you are trying
to do a WHERE on an *aggregate*, which is a different thing.  Consult
your favorite SQL manual; the construction you want is:

SELECT a, sum(b) as dsum 
FROM taba
GROUP BY a
HAVING dsum > 5;

-Josh Berkus

______AGLIO DATABASE SOLUTIONS___________________________                                      Josh Berkus Complete
informationtechnology      josh@agliodbs.com  and data management solutions       (415) 565-7293 for law firms, small
businesses       fax 621-2533   and non-profit organizations.      San Francisco
 


pgsql-sql by date:

Previous
From: Stephan Szabo
Date:
Subject: Re: WHERE on an alias
Next
From: Tom Lane
Date:
Subject: Re: WHERE on an alias