Re: Using non-grouping-keys at HAVING clause

From: Kohei KaiGai <kaigai(at)heterodb(dot)com>
To: Vik Fearing <vik(at)postgresfriends(dot)org>
Cc: Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Using non-grouping-keys at HAVING clause
Date: 2023-09-08 12:25:17
Message-ID: CAOP8fzaAu1ZnCbYyBedCv_rKaS-m9WG=xfReF6TnjmHCM3EdjA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

2023年9月8日(金) 19:07 Vik Fearing <vik(at)postgresfriends(dot)org>:
>
> On 9/8/23 09:42, Kohei KaiGai wrote:
> > Hello,
> >
> > I got a trouble report here:
> > https://github.com/heterodb/pg-strom/issues/636
> >
> > It says that PG-Strom raised an error when the HAVING clause used
> > non-grouping-keys,
> > even though the vanilla PostgreSQL successfully processed the query.
> >
> > SELECT MAX(c0) FROM t0 GROUP BY t0.c1 HAVING t0.c0<MIN(t0.c0);
> >
> > However, I'm not certain what is the right behavior here.
> > The "c0" column does not appear in the GROUP BY clause, thus we cannot
> > know its individual
> > values after the group-by stage, right?
>
> Wrong. c1 is the primary key and so c0 is functionally dependent on it.
> Grouping by the PK is equivalent to grouping by all of the columns in
> the table.
>
Wow! Thanks, I got the point. Indeed, it is equivalent to the grouping
by all the columns.

--
HeteroDB, Inc / The PG-Strom Project
KaiGai Kohei <kaigai(at)heterodb(dot)com>

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Stephen Frost 2023-09-08 12:56:48 Re: SLRUs in the main buffer pool - Page Header definitions
Previous Message Gabriele Bartolini 2023-09-08 11:31:16 Re: Possibility to disable `ALTER SYSTEM`