💡
原文英文,约500词,阅读约需2分钟。
📝
内容提要
WHERE和HAVING都是用于过滤数据的SQL子句,但用途不同。WHERE在分组前过滤行,不能与聚合函数一起使用;而HAVING在分组后过滤聚合数据,可以使用聚合函数。理解这两者的区别对编写高效SQL查询非常重要。
🎯
关键要点
- WHERE和HAVING都是用于过滤数据的SQL子句,但用途不同。
- WHERE在分组前过滤行,指定单行条件。
- HAVING在分组后过滤聚合数据,通常与聚合函数一起使用。
- WHERE不能与聚合函数一起使用,适用于简单条件的行过滤。
- HAVING可以使用聚合函数,适用于分组后的数据过滤。
- WHERE在查询中较早应用,影响分组的行。
- HAVING在GROUP BY之后应用,过滤聚合结果。
- 使用WHERE的示例:过滤薪水大于50000的员工。
- 使用HAVING的示例:过滤员工数量超过10的部门。
- 结合使用WHERE和HAVING的示例:先过滤薪水大于30000的行,再过滤平均薪水超过50000的部门。
- 理解WHERE和HAVING的区别对编写高效SQL查询至关重要。
➡️