MySQL HAVING子句
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 condition: 它用于限制返回的行组。它只显示那些条件为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函数一起使用。