为了账号安全,请及时绑定邮箱和手机立即绑定

mysql中的where和having子句的区别

mysql中的where和having子句的区别

ABOUTYOU 2019-04-09 10:04:28
mysql中的where和having子句的区别
查看完整描述

3 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

在mysql中,where可用于所有的条件语句,而having仅能用于分组后筛选。

举例:

test表中有如下数据:

where的使用:

如查询每个部门sal大于等于1500的所有sal的总和:

select deptno,sum(sal) from test where sal>=1500 group by deptno;

查询结果:


having的使用:

如查询sal总和大于5000的deptno:

select deptno from test group by deptno having sum(sal)>5000;

查询结果:




查看完整回答
反对 回复 2019-04-10
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

WHERE是对分组前记录的条件,如果某行记录没有满足WHERE子句的条件,那么这行记录不会参加分组;而HAVING是对分组后数据的约束。、

举例:

查询每个部门的部门编号以及每个部门工资大于1500的人数:

SELECT deptno,COUNT(*)

FROM emp

WHERE sal>1500

GROUP BY deptno;

HAVING子句

查询工资总和大于9000的部门编号以及工资和:

SELECT deptno, SUM(sal)

FROM emp

GROUP BY deptno

HAVING SUM(sal) > 9000;




查看完整回答
反对 回复 2019-04-10
?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

SELECT 列名称 FROM 表名称 WHERE 列 BY 值

在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。
SELECT 合计函数 FROM 表名称 WHERE 列 BY HAVING 合计函数

查看完整回答
反对 回复 2019-04-10
  • 3 回答
  • 0 关注
  • 576 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信