| From: | Merlin Moncure <mmoncure(at)gmail(dot)com> |
|---|---|
| To: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
| Cc: | Vik Fearing <vik(at)postgresfriends(dot)org>, Matheus Alcantara <matheusssilv97(at)gmail(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>, Peter Eisentraut <peter(at)eisentraut(dot)org> |
| Subject: | Re: Proposal: QUALIFY clause |
| Date: | 2025-07-22 03:43:15 |
| Message-ID: | CAHyXU0wnmAC2aSJXE8mWarydvQ_gY9OEFrpRNZ9OQ3De3vXZ2A@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Mon, Jul 21, 2025 at 9:19 PM Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
wrote:
>
> just for curiosity - why the HAVING clause was not used?
>
> Any window functions are +/- an "aggregate" function, and then HAVING
> looks more natural to me.
>
Hm, HAVING requires to apply 'group by' which windows functions do not
require (unlike aggregates).
superuser(at)postgres=# select * from (select 1 as v) q having true limit 1;
ERROR: column "q.v" must appear in the GROUP BY clause or be used in an
aggregate function
LINE 1: select * from (select 1 as v) q having true limit 1;
If a query has both window function and grouped aggregate, HAVING would be
applying at different grains potentially? If so, seems sus.
merlin
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Amit Kapila | 2025-07-22 03:48:51 | Re: Conflict detection for update_deleted in logical replication |
| Previous Message | Pavel Stehule | 2025-07-22 03:19:05 | Re: Proposal: QUALIFY clause |