[8.x] fix #37483 (aggregates with having) #37487
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The problem
Executing the following statement results in an sql error because the subquery is dismissed but the havings are kept:
Query:
Error:
But executing the following runs without error
Query:
When comparing the queries of the previous statements, it is clear the original query should instead be wrapped within a subquery to be valid when dealing with havings to get a correct count (because having only applies to grouped data), exactly how it's currently done with unions, eg:
This PR
It applies the methodology of aggregates with union to aggregates with havings and does indeed fix the aforementioned issue #37483
It is not a breaking change because the previous behavior of this specific case wasn't previously working
TLDR
Queries with havings should behave exactly the same way as unions when executing aggregates functions