当需要分组查询时需要使用GROUP BY子句,例如查询每个部门的工资和,这说明要使用部分来分组。
- 查询每个部门的部门编号以及每个部门工资大于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;
注意:WHERE是对分组前记录的条件,如果某行记录没有满足WHERE子句的条件,那么这行记录不会参加分组;而HAVING是对分组后数据的约束。