当我写这个SQL命令时:
SELECT Year,
Count(Book_Id)
FROM Books
WHERE Pages > 200
GROUP BY Year
HAVING Avg(Pages) > 400
"HAVING AVG(Pages) > 400"
- 这会计算一年中所有图书的平均页数,还是仅计算页数超过200的图书?
答案 0 :(得分:0)
WHERE
子句会过滤行,并且只为您提供Pages> 200的书籍,因此HAVING
子句仅适用于这些书籍。
答案 1 :(得分:0)
以下步骤显示logical processing order
语句的SELECT
。此顺序确定一个步骤中定义的对象何时可用于后续步骤中的子句。
注意:语句的实际物理执行由查询处理器决定,订单可能与此列表不同
1. FROM
2. ON
3. JOIN
4. WHERE
5. GROUP BY
6. HAVING
7. SELECT
8. DISTINCT
9. ORDER BY
10. TOP
首先应用Where Clause
,其中将使用页面超过200 的书籍进行过滤,然后应用having clause
只有那些页面超过200
如果您使用SQL SERVER