数据分组是通过使用GROUP BY子句、分组函数以及HAVING子句共同实现。
☆分组函数
MAX 求最大值 SELECT max(sal),min(sal) FROM emp;
MIN 求最小值 SELECT avg(sal),sum(sal) FROM emp;
AVG 求平均值 SELECT AVG(sal) FROM sal;
SUM 求和 SELECT SUM(sal) FROM sal;
COUNT 取得总计行数 SELECT count(*) FROM emp;
VARIANGE 求方差 SELECT variance(sal) FROM emp;
STDDEV 求标准差 SELECT stddev(sal) FROM emp;
☆GROUP BY 和HAVING
1.GROUP BY
SELECT deptno,avg(sal),max(sal) FROM emp
GROUP BY deptno,job;
2.HAVING
SELECT deptno,avg(sal),max(sal) FROM emp
GROUP BY deptno
HAVING avg(sal)<2000;
分组函数只能出现在选择列表,HAVING子句和ORDER BY子句中。
如果在SELECT语句中同时包含有GROUP BY,HAVING 以及 ORDER BY子句,则必须将ORDER BY
子句放在最后。
用了GROUP BY如果还要限制语句的话不能用WHERE 而用HAVING