在sql中有命令

时间:2014-11-09 03:22:30

标签: sql

当我写这个SQL命令时:

SELECT Year,
       Count(Book_Id)
FROM   Books
WHERE  Pages > 200
GROUP  BY Year
HAVING Avg(Pages) > 400 

"HAVING AVG(Pages) > 400" - 这会计算一年中所有图书的平均页数,还是仅计算页数超过200的图书?

2 个答案:

答案 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

,请查看 link 以获取更多信息