查询成本 - HAVING / WHERE子句中的相关子查询

时间:2015-09-01 14:52:40

标签: sql sql-server performance correlated-subquery

在HAVING子句中编写相关子查询而不是在WHERE子句中编写相关子查询的区别(对查询成本的影响)是什么?

1 个答案:

答案 0 :(得分:1)

A WHERE - 按记录记录条款,而每组评估HAVING

这意味着。 WHERE-Clause中的表达式通过过滤掉不匹配的行来减少GROUP BY的行数。如果您没有WHERE子句,则所有记录都将用于GROUP BY。只有最后一步(HAVING)过滤掉那些不符合标准的组。

影响力取决于您的数据。仅使用WHERE-Clause过滤要查询的行,并使用HAVING-Clause按聚合函数进行过滤。