首页 > 数据库 > mysql教程 > SQL 中的 HAVING 与 WHERE:何时使用每个子句进行数据过滤?

SQL 中的 HAVING 与 WHERE:何时使用每个子句进行数据过滤?

Susan Sarandon
发布: 2025-01-14 17:11:45
原创
673 人浏览过

HAVING vs. WHERE in SQL: When to Use Each Clause for Data Filtering?

SQL SELECT 语句中 HAVING 和 WHERE 子句的区别

在 SQL SELECT 语句中,HAVING 和 WHERE 子句在数据筛选方面具有不同的用途。理解它们的用法对于获得准确的查询结果至关重要。

HAVING 子句

HAVING 子句在使用 GROUP BY 子句进行聚合后应用。它根据应用于聚合值的条件过滤分组后的行。例如:

<code class="language-sql">SELECT City, COUNT(1) AS CNT
FROM Address
WHERE State = 'MA'
GROUP BY City
HAVING COUNT(1) > 5</code>
登录后复制

此查询返回一个包含马萨诸塞州城市及其地址数量(超过 5 个)的表。

WHERE 子句

相反,WHERE 子句在聚合之前过滤行。它评估单个行的条件,并仅选择满足条件的行。例如:

<code class="language-sql">SELECT City, COUNT(1) AS CNT
FROM Address
WHERE State = 'MA' AND City LIKE '%ton'
GROUP BY City</code>
登录后复制

此查询返回一个包含马萨诸塞州城市(名称以“ton”结尾)及其地址数量的表。

关键区别

HAVING 和 WHERE 之间的主要区别在于它们的应用时机:

  • HAVING 在分组后过滤聚合数据。
  • WHERE 在分组前过滤单个行。

通过利用这种区别,开发人员可以精确地操作和过滤 SQL SELECT 语句中的数据,以检索所需的结果。

以上是SQL 中的 HAVING 与 WHERE:何时使用每个子句进行数据过滤?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板