Having (SQL)
   HOME

TheInfoList



OR:

A HAVING clause in SQL specifies that an SQL SELECT statement must only return rows where aggregate values meet the specified conditions. HAVING and
WHERE Where may refer to: * Where?, one of the Five Ws in journalism * where (command), a shell command * Where (SQL), a database language clause * Where.com, a provider of location-based applications via mobile phones * ''Where'' (magazine), a serie ...
are often confused by beginners, but they serve different purposes. WHERE is taken into account at an earlier stage of a query execution, filtering the rows read from the tables. If a query contains GROUP BY, rows from the tables are grouped and aggregated. After the aggregating operation, HAVING is applied, filtering out the rows that don't match the specified conditions. Therefore, WHERE applies to data read from tables, and HAVING 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 GROUP BY clause, the HAVING 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: SELECT DeptID, SUM(SaleAmount) FROM Sales WHERE SaleDate = '01-Jan-2000' GROUP BY DeptID HAVING SUM(SaleAmount) > 1000 Referring to the sample tables in the ''Join'' example, the following query will return the list of departments which have more than 1 employee: SELECT DepartmentName, COUNT(*) FROM Employee JOIN Department ON Employee.DepartmentID = Department.DepartmentID GROUP BY DepartmentName HAVING COUNT(*) > 1; HAVING is convenient, but not necessary. Code equivalent to the example above, but without using HAVING, might look like: SELECT * FROM ( SELECT DepartmentName AS deptNam, COUNT(*) AS empCount FROM Employee AS emp JOIN Department AS dept ON emp.DepartmentID = dept.DepartmentID GROUP BY deptNam ) AS grp WHERE grp.empCount > 1;


External links


The HAVING and GROUP BY SQL clauses

SQL Aggregate Functions
{{DEFAULTSORT:Having (Sql) SQL keywords Articles with example SQL code