Cheap VPS & Xen Server

Residential Proxy Network - Hourly & Monthly Packages


MySQL HAVING Clause is used with GROUP BY clause. It always returns the rows where condition is TRUE.


  1. SELECT expression1, expression2, … expression_n,
  2. aggregate_function (expression)
  3. FROM tables
  4. [WHERE conditions]
  5. GROUP BY expression1, expression2, … expression_n
  6. HAVING condition;


aggregate_function: It specifies any one of the aggregate function such as SUM, COUNT, MIN, MAX, or AVG.

expression1, expression2, … expression_n: It specifies the expressions that are not encapsulated within an aggregate function and must be included in the GROUP BY clause.

WHERE conditions: It is optional. It specifies the conditions for the records to be selected.

HAVING condition: It is used to restrict the groups of returned rows. It shows only those groups in result set whose conditions are TRUE.

HAVING Clause with SUM function

Consider a table “employees” table having the following data.


Here, we use the SUM function with the HAVING Clause to return the emp_name and sum of their working hours.

Execute the following query:

  1. SELECT emp_name, SUM(working_hours) AS “Total working hours”
  2. FROM employees
  3. GROUP BY emp_name
  4. HAVING SUM(working_hours) > 5;


Simply, it can also be used with COUNT, MIN, MAX and AVG functions.