SQL语言中where和having有什么区别?

究竟有什么功能是只能用having而不能用where实现的呢?把having后的条件挪到where中不就可以省略having语句了么?

HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 子句和 SELECT 语句交互的方式类似。WHERE 子句搜索条件在进行分组操作之前应用;而 HAVING 搜索条件在进行分组操作之后应用。HAVING 语法与 WHERE 语法类似,但 HAVING 可以包含聚合函数。HAVING 子句可以引用选择列表中出现的任意项。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-04-19
--补充
select ··· from ···
where ···(只能对分组前的属性进行筛选)
group by ···
having ···(只能对分组后的每个组的整体属性进行筛选,用聚合函数体现)
····
--不使用group by就默认表的整体为一组本回答被提问者采纳
第2个回答  2013-05-04
意义都一个样,
速度上:where更快
使用上:1、having先分组后计算,where反之 2、having后面跟聚合函数,where不可以。

SQL中WHERE 和HAVING的区别
作用的对象不同。WHERE 子句作用于表和视图,HAVING 子句作用于组。WHERE 在分组和聚集计算之前选取输入行(因此,它控制哪些行进入聚集计算), 而 HAVING 在分组和聚集之后选取分组的行。因此,WHERE 子句不能包含聚集函数; 因为试图用聚集函数判断那些行输入给聚集运算是没有意义的。 相反,HAVING 子句...

sql语句中where和having的区别
Where 是一个约束声明,使用Where约束来自数据库的数据,Where是在结果返回之前起作用的,Where中不能使用聚合函数。Having是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作,在Having中可以使用聚合函数。在查询过程中聚合语句(sum,min,max,avg,count)要比having子句优先执行。而where子句在...

SQL语言中where和having有什么区别?
HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 子句和 SELECT 语句交互的方式类似。WHERE 子句搜索条件在进行分组操作之前应用;而 HAVING 搜索条件在进行分组操作之后应用。HAVING 语法与 WHERE 语法类似,但 HAVING 可以包含聚合函数。HAVING 子句可以引用选择列表中出现的任意项。

having和where的区别
having 和where 都是用来筛选用的,having 是筛选组 而where是筛选记录。 扩展资料 1.类型:“Where”是一个约束声明,在查询数据库的.结果返回之前对数据库中的查询条件进行约束,即在结果返回之前起作用,且where后面不能使用“聚合函数”;“Having”是一个过滤声明,所谓过滤是在查询数据库的...

sql中where和having的区别
where是一个约束声明,是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据。where字句中不能包含聚组函数。where语句显示特定的行。having是一个过滤声明,是筛选满足条件的组,即在分组之后过滤数据。having字句中可以包含聚组函数。having语句显示特定的组。只要记清楚谁在分组之前...

SQL语言中“where”和“having”有什么区别?
···where ···(只能对分组前的属性进行筛选)group by ···having ···(只能对分组后的每个组的整体属性进行筛选,用聚合函数体现)···–不使用group by就默认表的整体为一组 速度上:where更快 使用上:1、having先分组后计算,where反之 2、having后面可以跟聚合函数,where不可以。

group by, having, where的区别是什么?
一、区别 1、执行顺序不同 在SQL语句中,where语句的执行顺序先于group by,group by语句的执行顺序先于having。2、执行条件不同 在group by的SQL语句中,select中返回的字段,必须包含在group by语句的后面,作为分组的依据,而且字段包含在聚合函数中。在having 的SQL语句中,having只能用于group by,...

sql语句中where和having的区别
where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。

数据库中where与having区别~~~
“Where”是一个约束声明,在查询数据库的结果返回之前对数据库中的查询条件进行约束,即在结果返回之前起作用,且where后面不能使用“聚合函数”;“Having”是一个过滤声明,所谓过滤是在查询数据库的结果返回之后进行过滤,即在结果返回之后起作用,并且having后面可以使用“聚合函数”。2.使用的角度:whe...

SQL 面试题:WHERE 和 HAVING、ON 有什么区别?
WHERE 与 HAVING 的根本区别在于 WHERE 子句应用于原始数据集,而 HAVING 则是在数据分组和聚合操作后进行过滤。因此,WHERE 不能使用聚合函数,而 HAVING 只能使用分组字段和聚合函数。示例中,WHERE 子句错误地尝试使用聚合函数,正确做法使用 HAVING 对聚合后结果进行过滤。HAVING 子句不允许使用除分组字段...

相似回答