Re: group by can use alias from select list but not the having clause

From: Pantelis Theodosiou <ypercube(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: hape Hape <postgres-hape(at)gmx(dot)de>, pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: group by can use alias from select list but not the having clause
Date: 2023-07-03 14:57:52
Message-ID: CAE3TBxyWiQ6RnBJT0=gP5RRGANQ3d_MkR38b_8NGYLDAsGr1zw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Mon, Jul 3, 2023 at 3:12 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:

> hape Hape <postgres-hape(at)gmx(dot)de> writes:
> > works (how does the group by know about otto if the sequence is done as
> > described above?)
>
> This is intentional and documented, eg
> https://www.postgresql.org/docs/current/sql-select.html#SQL-GROUPBY
> says
>
> An expression used inside a grouping_element can be an input column
> name, or the name or ordinal number of an output column (SELECT list
> item), or an arbitrary expression formed from input-column values.
>
> whereas the discussion of HAVING does not mention allowing output
> columns. The reason for this is mainly that it'd seldom be useful
> for a HAVING expression to be just a bare column reference, but
> as soon as you write something that's not a bare column reference,
> the output-column special case is disallowed anyway.
>
> Tom, the HAVING clause section has:

> ... Each column referenced in condition must unambiguously reference a
grouping column, ...

I suppose "grouping column" can be read to mean what is called "grouping
element" in GROUP BY section and that it may be either input or output
column, leading to the confusion.
Perhaps this phrase can be improved to make this clearer.

Best regards
Pantelis Theodosiou

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Tristan Partin 2023-07-03 16:17:21 Re: BUG #17946: LC_MONETARY & DO LANGUAGE plperl - BUG
Previous Message Tristan Partin 2023-07-03 14:42:58 Re: BUG #17946: LC_MONETARY & DO LANGUAGE plperl - BUG