企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### 8.1、group by 格式select 字段 from 表名 [where] [order by]group by 字段1,字段2,字段3... [having 字段名运算符] [order by] >[danger]注意: 1,分组后列名必须是分组字段或者聚合数据如count() avg() max() min() 2,where 是分组前的筛选条件 having是分组后的条件 3,分组后group by中可以使用聚合函数排序 l 取得每个工作岗位的工资合计,要求显示岗位名称和工资合计 ``` select job, sum(sal) from emp group by job; ``` ![](https://img.kancloud.cn/2d/fb/2dfb48b965d0a2b947c802d52caf08f3_428x179.png) 如果使用了order by,order by必须放到group by后面 ![](https://img.kancloud.cn/ea/63/ea6343e5b1fe13d7141529172109746b_649x72.png) l 按照工作岗位和部门编码分组,取得的工资合计 n 原始数据 ![](https://img.kancloud.cn/d5/59/d559a071a80dc0d274ad04c97bf0299e_657x325.png) n 分组语句 ``` select job,deptno,sum(sal) from emp group by job,deptno; ``` ![](https://img.kancloud.cn/50/a1/50a1ca2d73c10a98938e9cfcaab8b0bb_581x250.png) mysql> select empno,deptno,avg(sal) from emp group by deptno; +-------+--------+-------------+ | empno | deptno | avg(sal) | +-------+--------+-------------+ | 7782 | 10 | 2916.666667 | | 7369 | 20 | 2175.000000 | | 7499 | 30 | 1566.666667 | +-------+--------+-------------+ 以上SQL语句在Oracle数据库中无法执行,执行报错。 以上SQL语句在Mysql数据库中可以执行,但是执行结果矛盾并且没有任何意义。 在SQL语句中若有group by 语句,那么在select语句后面只能跟**聚合函数****+****参与分组的字段**。