Re: WHERE on an alias

Поиск
Список
Период
Сортировка
От Josh Berkus
Тема Re: WHERE on an alias
Дата
Msg-id web-107962@davinci.ethosmedia.com
обсуждение исходный текст
Ответ на WHERE on an alias  (Joseph Shraibman <jks@selectacast.net>)
Список 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 по дате отправления:

Предыдущее
От: Stephan Szabo
Дата:
Сообщение: Re: WHERE on an alias
Следующее
От: Tom Lane
Дата:
Сообщение: Re: WHERE on an alias