SQL 中的 HAVING 子句17 Mar 2025 | 5 分钟阅读 HAVING 子句在 SELECT 语句的 GROUP BY 子句定义的组中放置条件。 此 SQL 子句在 SELECT 语句的 'GROUP BY' 子句之后实现。 此子句在 SQL 中使用,因为我们无法在 SQL 聚合函数中使用 WHERE 子句。WHERE 和 HAVING 子句都用于过滤 SQL 查询中的记录。 HAVING 和 WHERE 子句的区别WHERE 和 HAVING 子句在数据库中的区别是在 IT 面试中常被问到的重要问题。 下表显示了这两个子句之间的比较,但主要区别在于 WHERE 子句 在进行任何分组之前使用条件过滤记录,而 HAVING 子句使用条件从组中过滤值。
SQL 中 HAVING 子句的语法SQL 中 HAVING 子句的示例在本文中,我们使用了以下四个不同的示例,它们将帮助您了解如何使用 HAVING 子句以及不同的 SQL 聚合函数。 示例 1: 让我们看下面的 Employee 表,它有助于您使用 SUM 聚合函数分析 HAVING 子句。
如果您想计算每个城市的员工的薪水总和,您需要编写以下查询。 上述查询的输出显示以下结果。
现在,假设您想显示员工总薪水超过 5000 的城市。在这种情况下,您需要在 SQL 中使用 HAVING 子句编写以下查询。 上述 SQL 查询的输出在结果中显示以下表。
示例 2: 让我们看下面的 Student_details 表,它有助于您使用 COUNT 聚合函数分析 HAVING 子句。
假设您想根据年龄统计上述表中的学生人数。为此,您需要编写以下查询。 上述查询将显示以下输出。
现在,假设您想显示学号大于等于 2 的学生的年龄。在这种情况下,您需要在 SQL 中使用 HAVING 子句编写以下查询。 上述 SQL 查询的输出在结果中显示以下表。
示例 3: 让我们看下面的 Employee 表,它有助于您使用 MIN 和 MAX 聚合函数分析 HAVING 子句。
MIN 函数与 HAVING 子句如果您想显示每个部门和每个部门的最低薪水,您需要编写以下查询。 上述查询的输出显示以下结果。
现在,假设您只想显示员工最低薪水大于 4000 的部门。在这种情况下,您需要在 SQL 中使用 HAVING 子句编写以下查询。 上述 SQL 查询在结果中显示以下表。
MAX 函数与 HAVING 子句在上面的员工表中,如果您想列出每个部门和每个部门的最高薪水。为此,您需要编写以下查询。 上述查询将显示以下输出。
现在,假设您只想显示员工最高薪水小于 8000 的部门。在这种情况下,您需要在 SQL 中使用 HAVING 子句编写以下查询。 上述 SQL 查询的输出在结果中显示以下表。
示例 4: 让我们看下面的 Employee_Dept 表,它有助于您使用 AVG 聚合函数分析 HAVING 子句。
如果您想计算每个部门的员工平均薪水,您需要编写以下查询。 上述查询将显示以下输出。
现在,假设您想显示平均薪水大于等于 6500 的部门。在这种情况下,您需要在 SQL 中使用 HAVING 子句编写以下查询。 上述 SQL 查询将在结果中显示以下表。
下一主题SQL ORDER BY |
我们请求您订阅我们的新闻通讯以获取最新更新。