黑马程序员技术交流社区

标题: having [打印本页]

作者: 陈世伟    时间: 2012-4-30 07:40
标题: having
having应该怎么用,having和where有什么区别?
作者: 杨礼文    时间: 2012-4-30 10:26
在Where中不能使用聚合函数,必须使用Having,Having要位于Group By之后,
SELECT FAge,COUNT(*) AS 人数 FROM T_Employee GROUP BY FAge
HAVING COUNT(*)>1
注意Having中不能使用未参与分组的列,Having不能替代where。Having 是对组进行过滤。

作者: 王志龙    时间: 2012-4-30 11:57
Where表示的是对源表中的字段或字段的一部分进行的筛选,而Having是对分组以后的结果进行筛选,一般情况下是对合计后产生的字段进行的筛选,如求和、求平均、计数、求最大值最小值等,并且Having子句要和Group by子句一起使用
作者: 郑森    时间: 2012-5-2 14:09
having是group by后的条件筛选
作者: 鲍晨    时间: 2012-5-2 14:38
select class_id,COUNT(*) from tb_News

group by class_id
--查询的字段不能出现没有在group by中的字段,可以使聚合函数,但是聚合函数不能出现在where中
select class_id,COUNT(*)from tb_News group by class_id
having COUNT(*)>1
--having出现的字段也是必须在select中出现的字段,是对分组后信息的过滤,  可以有聚合函数





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