group by
group by 的使用
select job_id,avg(salary) from employees group by job_id;
查询各个department_id,job_id的平均工资
select job_id,department_id,avg(salary) from employees group by job_id,department_id;
group by 后先写 job_id 还是先写 department_id 都是一样的
结论1:select 中出现的非组函数的字段必须声明在group by中
反之,group by中声明的字段可以不出现在select中
结论2:group by声明在from后面、where后面、order by前面、limit前面
group by中使用with rollup
使用with rollup 关键字后,在所有查询出的分组记录之后增加一条记录,该记录用于计算所有数据的总和,也即将所有数据视为全体,然后使用当前聚合函数对整体进行计算
select avg(salary) from employees group by job_id with ROLLUP;
注意:使用rollup时,不能同时使用order by 子句进行结果的排序,他们是互相排斥的。