SQL Server HAVING2025年3月17日 | 阅读 3 分钟 SQL Server 中的 HAVING 子句用于指定组或聚合的搜索条件。 它只能与 SELECT 语句 一起使用,并且通常与 GROUP BY 子句 一起使用。 它使我们能够过滤在结果中显示的组结果。 我们使用此子句代替 WHERE 子句,因为它对 GROUP BY 子句创建的组设置条件,而 WHERE 子句对选定的列设置条件。 SQL 中的每个 HAVING 条件都可以将一个组列或聚合表达式与另一个组聚合表达式或常量进行比较。 我们可能使用 HAVING 对组列表中列值和聚合值都设置条件。 HAVING 子句的优势HAVING 子句验证组的方式与 WHERE 子句验证单个行的方式相同。 使用 HAVING 子句的主要好处是聚合可以包含在搜索条件中,而聚合不能在 WHERE 子句的搜索条件中使用。 语法以下是 SQL Server 中 HAVING 子句的基本语法 下面解释了上述语法的参数描述
HAVING 子句示例让我们通过示例来理解 HAVING 子句,这些示例帮助我们将其与不同的 SQL 聚合函数一起使用。 假设我们有一个名为 employees_info 的表,其中包含以下数据 ![]() 我们将使用此表来演示 HAVING 子句与不同的示例。 示例 1: 下面的查询将使用 SUM 函数与 HAVING 子句。 它将返回员工姓名及其工作小时数的总和,这些小时数超过 6 小时 执行查询将返回以下输出 ![]() 示例 2: 下面的查询将使用 COUNT 函数与 HAVING 子句。 此语句计算那些工资大于 30000 的员工的工作小时数 执行该语句将返回以下输出 ![]() 示例 3: 下面的查询将使用 MIN 函数与 HAVING 子句。 它将返回每个员工的最小工作小时数,并且最小工作小时数大于 10。 执行该语句将返回以下输出,我们可以在其中看到员工姓名及其最小工作小时数 ![]() 示例 4: 下面的查询将使用 MAX 函数与 HAVING 子句。 它将返回每个员工的最大工作小时数,并且最大工作小时数小于 12。 执行该语句将返回以下输出,我们可以在其中看到员工姓名及其最大工作小时数小于 12 ![]() 示例 5: 下面的查询将使用 AVERAGE 函数与 HAVING 子句。 它将返回平均工资大于或等于 30000 的职业名称。 执行该语句将返回以下输出 ![]() 本文将介绍 HAVING 子句,它与 WHERE 子句的区别,以及它如何与聚合函数 SUM、COUNT、MAX、MIN 和 AVERAGE 一起工作。 下一话题SQL Server 选择 |
我们请求您订阅我们的新闻通讯以获取最新更新。