MySQL 常见子句:HAVING 子句
MySQL的 HAVING 子句与 GROUP BY 配合使用,返回 HAVING 条件为 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: 返回分组结果集中的过滤条件。
HAVING 子句与 SUM
数据表 "employees" 如下所示:
使用求和函数 SUM 求取员工工作总时长,并使用 HAVING 对求和结果进行过滤。
执行查询语句:
SELECT emp_name, SUM(working_hours) AS "Total working hours"
FROM employees
GROUP BY emp_name
HAVING SUM(working_hours) > 5;
同理,HAVING 也可以和COUNT、 MIN、MAX、AVG 聚合函数一起使用。