Where 和 Having 的区别
Where 和 Having 都是 SQL 查询中用于根据给定条件过滤和汇总从数据库检索到的数据的两个关键字。
根据这两个关键字的功能,我们可以区分 Where 和 Having,如下所示:
序号 | 关键字 | Where | Having |
---|---|---|---|
1 | 定义 | SQL 查询中的 WHERE 子句指定其返回的行,并将其限制为特定的行集。如果用户希望根据某些特定分类或条件获取特定记录,则使用“where”子句很有用。 | WHERE 子句用于在选择表行时指定所需的条件(关于聚合值)。 |
2 | 执行 | 根据子句的执行顺序,WHERE 子句在 GROUPBY 子句执行之前,FROM 子句执行之后执行。 | 另一方面,HAVING 子句在创建组后执行。 |
3 | GroupBy 兼容性 | WHERE 子句可与 SQL 查询中的 GroupBy 子句一起使用。 | 另一方面,Having 子句与 GroupBy 子句不兼容。 |
4 | 行选择 | WHERE 子句在结果分组之前选择行。 | 另一方面,Having 子句在分组后选择行。 |
5 | 聚合函数 | WHERE 子句不能包含聚合函数。 | 另一方面,HAVING 子句可以包含聚合函数。 |
广告