聚合操作的语法如下:
-- SELECT [field1,field2,……fieldn] fun_name
-- FROM tablename
-- [WHERE where_contition]
-- [GROUP BY field1,field2,……fieldn
-- [WITH ROLLUP]]
-- [HAVING where_contition]
-- 对其参数进行以下说明。
fun_name 表示要做的聚合操作,也就是聚合函数,常用的有 sum(求和)、count(*)(记录数)、max(最大值)、min(最小值)。
GROUP BY 关键字表示要进行分类聚合的字段,比如要按照部门分类统计员工数量,部门就应该写在 group by 后面。
WITH ROLLUP 是可选语法,表明是否对分类聚合后的结果进行再汇总。
HAVING 关键字表示对分类后的结果再进行条件的过滤。
-- 注意:having 和 where 的区别在于 having 是对聚合后的结果进行条件的过滤,而 where 是在聚
-- 合前就对记录进行过滤,如果逻辑允许,我们尽可能用 where 先过滤记录,这样因为结果
-- 集减小,将对聚合的效率大大提高,最后再根据逻辑看是否用 having 进行再过滤
-- select deptno,count(1) from emp group by deptno having count(1)>1;
-- 统计公司所有员工的薪水总额、最高和最低薪水:
-- select sum(sal),max(sal),min(sal) from emp;