猿问

mysql中的where和having子句的区别

mysql中的where和having子句的区别


ABOUTYOU
浏览 578回答 3
3回答

慕尼黑5688855

在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;查询结果:

慕盖茨4494581

WHERE是对分组前记录的条件,如果某行记录没有满足WHERE子句的条件,那么这行记录不会参加分组;而HAVING是对分组后数据的约束。、举例:查询每个部门的部门编号以及每个部门工资大于1500的人数:SELECT deptno,COUNT(*)FROM empWHERE sal>1500GROUP BY deptno;HAVING子句查询工资总和大于9000的部门编号以及工资和:SELECT deptno, SUM(sal)FROM empGROUP BY deptnoHAVING SUM(sal) > 9000;

蝴蝶不菲

SELECT 列名称 FROM 表名称 WHERE 列 BY 值在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。SELECT 合计函数 FROM 表名称 WHERE 列 BY HAVING 合计函数
随时随地看视频慕课网APP

相关分类

MySQL
我要回答