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 之间的主要区别在于它们的应用时机:
通过利用这种区别,开发人员可以精确地操作和过滤 SQL SELECT 语句中的数据,以检索所需的结果。
以上是SQL 中的 HAVING 与 WHERE:何时使用每个子句进行数据过滤?的详细内容。更多信息请关注PHP中文网其他相关文章!