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

2024-12-20 09:34:03
推荐回答(3个)
回答1:

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

回答2:

--补充
select ··· from ···
where ···(只能对分组前的属性进行筛选)
group by ···
having ···(只能对分组后的每个组的整体属性进行筛选,用聚合函数体现)
····
--不使用group by就默认表的整体为一组

回答3:

意义都一个样,
速度上:where更快
使用上:1、having先分组后计算,where反之 2、having后面跟聚合函数,where不可以。