分组统计查询

分组统计查询

概念:

将所有具有相同分组字段的知记录放到一个分组里。

基本语法:

4→SELECT *

1→ FROM 数据来源,数据来源···

2→ WHERE 过滤条件

3→ GROUP BY 分组字段

5→ ORDER BY 排序字段 ASC|DESC {排序方式(按照指定字段进行升序或者降序显示)}

查询出每个职位的平均工资

SELECT AVG(sal)
	FROM emp
	GROUP BY job;

查询出每个部门的名称及其人数

SELECT dname,COUNT(*) 人数
	FROM  emp e INNER JOIN dept d ON e.deptno=d.deptno
	GROUP BY dname;

统计出每个职位的名称、人数、平均工资

SELECT job,COUNT(*) 人数 ,AVG(sal) 平均工资
	FROM emp
	GROUP BY job;

查询出每个部门的名称、人数、以及 每个部门的雇员的最高和最低工资

SELECT dname,COUNT(*) 人数,MAX(sal) 最高工资,MIN(sal) 最低工资
	FROM emp e INNER JOIN dept d ON e.deptno=d.deptno
	GROUP BY dname;

使用统计函数要注意问题

1.如果SELECT 字句中使用了统计函数同时没有GROUP BY 子句那么SELECT 子句只能出现统计函数,不能出现其他任何字段。

观察如下代码:

SELECT empno,job,AVG(sal)
	FROM emp;

运行结果如下:
在这里插入图片描述

在这里插入图片描述

2.如果SELECT 字句中使用了统计函数同时有GROUP BY 子句则在SELECT 子句中只能出现统计函数和分组的字段。

观察如下代码:

SELECT empno,job,AVG(sal)
	FROM emp
	  GROUP BY job;

运行结果如下:
在这里插入图片描述

3.如果SELECT 字句中使用了嵌套的统计函数,则不管是否有GROUP BY 子句那么SELECT 字句中不能出现统计函数之外任何字段。

观察如下代码:

SELECT job,MAX(AVG(sal)) 
	FROM emp
	GROUP BY job;	

运行结果如下:
在这里插入图片描述
正确的代码运行结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值