分组查询(group by)
分组查询 分组查询主要涉及到两个子句,分别是:group by 和 having,having不可单独出现,需要和group by 一起使用。# -------------------------9、分组查询 ------------------------- # 取得每个工作岗位的工资合计,要求显示岗位名称和工资合计。 select * from emp; select job, sum(sal) from emp group by job; # 按照工作岗位和部门编码分组,取得的工资合计 # 在 SQL 语句中若有 group by 语句,那么在 select 语句后面只能跟分组函数+参与分组的字段。 select deptno, job, sum(sal) from emp group by deptno, job; # 取得每个岗位的平均工资大于 2000 # 有group by语句,后面不能有where select job, avg(sal) from emp group by job having avg(sal)>2000;
select 语句总结 一个完整的 select 语句格式如下: select 字段 from 表名 where ……. group by …….. having …….(就是为了过滤分组后的数据而存在的—不可以单独的出现) order by …….. 以上语句的执行顺序 1. 首先执行 where 语句过滤原始数据 2. 执行 group by 进行分组 3. 执行 having 对分组数据进行操作 4. 执行 select 选出数据 5. 执行 order by 排序 原则:能在 where 中过滤的数据,尽量在 where 中过滤,效率较高。having 的过滤是专门对分组之后的数据进行过滤 的。