在 select 语句中,允许使用 group by 子句将查询结果按照一个或多个字段进行分组,字段值相同的为一组,对每个组进行聚合计算,实现数据的分组汇总。
语法:select<字段名列表> from <表名> [where <查询条件>] group by <字段名列表>
select 后的字段名应该是分组字段和聚合字段。
group by分组字段可以是一个或多个。
如果分组字段中包含有null值,则null值所在的行单独分为一组。
单字段分组:查询各部门的平均工资
mysql> select deptno,avg(sal) 平均工资 from emp group by deptno;
| deptno | 平均工资 |
| 10 | 2916.6666666666665 |
| 20 | 2175 |
| 30 | 1566.6666666666667 |
多字段分组:查询各部门不同职位的平均工资
mysql> select deptno,job,avg(sal) 平均工资 from emp group by deptno,job;
| deptno | job | 平均工资 |
| 10 | clerk | 1300 |
| 10 | manager | 2450 |
| 10 | persident | 5000 |
| 20 | analyst | 3000 |
| 20 | clerk | 950 |
| 20 | manager | 2975 |
| 30 | clerk | 950 |
| 30 | manager | 2850 |
| 30 | salesman | 1400 |
暂无数据