HAVING 子句用于筛选分组后的数据,语法为:SELECT aggregate_functions(column_name) FROM table_name GROUP BY column_name HAVING condition;。它可以筛选聚合函数、分组列、常量或运算符。例如,以下查询筛选出订单中至少包含 3 件商品且总金额大于 100 美元的组:SELECT COUNT(DISTINCT order_id) AS order_count FROM orders GROUP BY cus

SQL 中 HAVING 子句
HAVING 子句的作用:
HAVING 子句用于对分组后的数据进行筛选。它与 WHERE 子句类似,但用于筛选聚合结果,而不是筛选原始数据。
HAVING 子句的语法:
SELECT aggregate_functions(column_name) FROM table_name GROUP BY column_name HAVING condition;
条件:
HAVING 子句中的条件可以包括以下内容:
在整本书中我们所涉及许多的Flex框架源码,但为了简洁,我们不总是显示所指的代码。当你阅读这本书时,要求你打开Flex Builder,或能够访问Flex3框架的源码,跟随着我们所讨论源码是怎么工作及为什么这样做。 如果你跟着阅读源码,请注意,我们经常跳过功能或者具体的代码,以便我们可以对应当前的主题。这样能防止我们远离当前的主题,主要是讲解代码的微妙之处。这并不是说那些代码的作用不重要,而是那些代码处理特别的案例,防止潜在的错误或在生命周期的后面来处理,只是我们当前没有讨论它。有需要的朋友可以下载看看
- 聚合函数(例如 SUM、COUNT、AVG)
- 分组列
- 常量
- 运算符(例如 >、
HAVING 子句的用法:
HAVING 子句可以用于多种场景,例如:
- 从分组结果中筛选出满足特定条件的组
- 查找具有特定聚合值(例如最大值、最小值)的组
- 根据聚合结果计算百分比或平均值
示例:
查询满足以下条件的订单:
- 总金额大于 100 美元
- 订单中至少包含 3 件商品
SELECT COUNT(DISTINCT order_id) AS order_count FROM orders GROUP BY customer_id HAVING SUM(total_amount) > 100 AND COUNT(DISTINCT product_id) >= 3;
注意:
- HAVING 子句只能在 GROUP BY 子句之后使用。
- HAVING 子句只能筛选聚合结果,不能筛选原始数据。









