MySQL Having语句

MySQL HAVING 子句与 GROUP BY 子句一起使用。它总是返回条件为 True 的行。

一、MySQL Having语句的语法

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 和他们的工作时间总和。

执行以下SQL语句:

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 函数一起使用。

热门文章

优秀文章