what's the difference between WHERE and HAVING

You use "WHERE" clauses to select rows for inclusion in the dataset before grouping operations have happend (GROUP BY). You use HAVING clauses to filter rows after grouping.

So like if you're aggregating a sum or a maximum or a minimum, you can use HAVING predicates to check the aggregated values on the candidate rows.


There are some subtleties and intricacies, but quick description is a comparison: HAVING is to GROUP BY as WHERE is to SELECT.

In other words, if you think of HAVING as a WHERE clause that gets applied after the GROUP BY clause, things start to make sense.


Explanation and query samples in this fine article: Where Vs Having / Difference between having and Where clause

Tags:

Tsql