Re: [HACKERS] WHERE vs HAVING
От | Tom Lane |
---|---|
Тема | Re: [HACKERS] WHERE vs HAVING |
Дата | |
Msg-id | 25460.926532419@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | WHERE vs HAVING (jwieck@debis.com (Jan Wieck)) |
Список | pgsql-hackers |
jwieck@debis.com (Jan Wieck) writes: > I wonder what makes the difference between WHERE and HAVING > that causes HAVING to accept aggregates while WHERE doesn't. Huh? It seems inherent in the definition to me: WHERE is a filter applied to individual tuples before any aggregation stage can happen, thus it makes no sense for it to include aggregate functions (except in explicit subselects, which create a new context for the aggregation to occur in). HAVING applies to groups of tuples after aggregation, so aggregate functions can meaningfully be applied to those groups. > It would be extremely nice if it's possible to teach WHERE > how to handle aggregates properly. Having to push them into > subselects during rewrite if a views aggregate column appears > in the WHERE clause is a total mess. Explain to me what you think it should mean. It sounds to me like you are trying to have the rewrite system change an incorrect query into a valid one. Doesn't strike me as a good idea; does the user know what he's going to get? regards, tom lane
В списке pgsql-hackers по дате отправления: