Re: Aggregates in WHERE clause?

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Richard Broersma" <richard(dot)broersma(at)gmail(dot)com>
Cc: "Ruben Gouveia" <rubes7202(at)gmail(dot)com>, pgsql-sql <pgsql-sql(at)postgresql(dot)org>
Subject: Re: Aggregates in WHERE clause?
Date: 2008-09-11 12:03:23
Message-ID: 16867.1221134603@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

"Richard Broersma" <richard(dot)broersma(at)gmail(dot)com> writes:
> On Wed, Sep 10, 2008 at 4:11 PM, Ruben Gouveia <rubes7202(at)gmail(dot)com> wrote:
>> ERROR: aggregates not allowed in WHERE clause

> Having clause works on agregates. If you want to force it in the
> where, you need to put the groupby in a sub-query.

The way I like to think about it is "WHERE filters rows before aggregate
functions are computed; HAVING filters them afterwards". Seen in those
terms, it's obvious why WHERE can't contain any aggregates.

regards, tom lane

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Igor Neyman 2008-09-11 12:43:04 Re: Aggregates in WHERE clause?
Previous Message Craig Ringer 2008-09-11 02:14:54 Re: pg_restore in java connection (auto_commit = false)