Saturday, November 19, 2011

SQL - HAVING

The HAVING clause is used to restrict conditionally the output of a SQL statement, by a Aggregate Function used in your SELECT list of columns.

You can't specify criteria in a WHERE clause against a column in the SELECT list for which Aggregate Function is used. For example the following SQL statement will generate an error:

SELECT Employee, SUM (Hours)
FROM EmployeeHours
WHERE SUM (Hours) > 24
GROUP BY Employee

The HAVING clause is used to do exactly this, to specify a condition for an aggregate function which is used in your query:

SELECT Employee, SUM (Hours)
FROM EmployeeHours
GROUP BY Employee
HAVING SUM (Hours) > 24

The above SQL statement will select all employees and the sum of their respective hours, as long as this sum is greater than 24. The result of the HAVING clause can be seen below:

Employee
Hours
John Smith
25
Tina Crown
27

No comments:

Post a Comment