MySQL HAVING 子句与 GROUP BY 子句一起使用。它总是返回条件为 TRUE 的行。
句法:
SELECT expression1, expression2, ... expression_n,
aggregate_function (expression)
FROM tables
[WHERE conditions]
GROUP BY expression1, expression2, ... expression_n
HAVING condition;
参数
aggregate_function: :它指定任何一种聚合函数,如 SUM、COUNT、MIN、MAX 或 AVG。
expression1, expression2, ... expression_n:指定未封装在聚合函数中且必须包含在 GROUP BY 子句中的表达式。
WHERE conditions:可选。它指定要选择的记录的条件。
HAVING conditions:用于限制返回行的分组。它仅显示结果集中条件为 TRUE 的那些组。
具有 SUM 函数的 HAVING 子句
考虑具有以下数据的表“employees”表。
在这里,我们使用带有 HAVING 子句的 SUM 函数来返回 emp_name 和他们的工作时间总和。
执行以下查询:
SELECT emp_name, SUM(working_hours) AS "Total working hours"
FROM employees
GROUP BY emp_name
HAVING SUM(working_hours) > 5;
简单地说,它还可以与 COUNT、MIN、MAX 和 AVG 函数一起使用。