黑马程序员技术交流社区

标题: 数据库中Having [打印本页]

作者: 张学良    时间: 2012-3-26 12:14
标题: 数据库中Having
数据库中Having是什么意思啊、比如:
select store_name, sum(sales) from Store_Information group by store_name having sum(sales) > 1500,
用where难道不行吗?
作者: 韩迎龙    时间: 2012-3-26 12:37
指定组或聚合的搜索条件。HAVING 只能与 SELECT 语句一起使用。HAVING 通常在 GROUP BY 子句中使用。如果不使用 GROUP BY 子句,则 HAVING 的行为与 WHERE 子句一样。
实例为: HAVING 子句从 SalesOrderDetail 表中检索超过 $100000.00 的每个 SalesOrderID 的总计。
USE AdventureWorks ;
GO
SELECT SalesOrderID, SUM(LineTotal) AS SubTotal
FROM Sales.SalesOrderDetail sod
GROUP BY SalesOrderID
HAVING SUM(LineTotal) > 100000.00
ORDER BY SalesOrderID ;

作者: 蔚强    时间: 2012-3-26 13:12
   where是对整个表而言的,就是说where要跟在表的后面,而having是对分组后的数据进行筛选的。
作者: 朱学田    时间: 2012-3-29 21:24
sum()等聚合函数不能用在where中,要想用聚合函数就必须用在having
作者: 徐刚    时间: 2012-3-29 23:20
where中不能使用聚合函数,必须使用Having,Having通常要位于Group By之后,Having中不能使用未参与分组的列。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2