Having (SQL)

A   clause in SQL specifies that an SQL  statement must only return rows where aggregate values meet the specified conditions.

Use
and  are often confused by beginners, but they serve different purposes. is taken into account at an earlier stage of a query execution, filtering the rows read from the tables. If a query contains, rows from the tables are grouped and aggregated. After the aggregating operation,  is applied, filtering out the rows that don't match the specified conditions. Therefore,  applies to data read from tables, and   should only apply to aggregated data, which isn't known in the initial stage of a query.

To view the present condition formed by the   clause, the   clause is used.

Examples
To return a list of department IDs whose total sales exceeded $1000 on the date of January 1, 2000, along with the sum of their sales on that date:

Referring to the sample tables in the Join example, the following query will return the list of departments which have more than 1 employee:

is convenient, but not necessary. Code equivalent to the example above, but without using, might look like: