- 一 介绍
- 1.分组函数作用于一组数据,并对一组数据返回一个值
- 2.组函数类型:
- avg 平均值
- count
- max
- min
- stddev
- sum
- 二 代码
- 1. 工资最高的:SQL> select max(sal) from emp;
- 工资最低的:SQL> select min(sal) from emp;
- 平均工资:SQL> select avg(sal) from emp;
- 工资总数:SQL> select sum(sal) from emp;
- 记录总数:SQL> select count(emptno) from emp; 返回的是不为空的记录
- SQL> select count(distinct emptno) from emp;
- 返回的是非空且不重复的记录总数 distinct是去掉重复的
- 也可以写为:
- SQL> select min(sal),max(sal),min(sal) from emp;
- 结果为:
- MIN(SAL) MAX(SAL) MIN(SAL)
- ---------- ---------- ----------
- 800 5000 800
- 注:(1)可以对数值型数据使用AVG 和 SUM 函数。
- (2)可以对任意数据类型的数据使用 MIN 和 MAX 函数。
- 也可以对日期使用
- SQL> select min(hiredate) from emp;
- SQL> select max(hiredate) from emp;
- 2.分组数据
- group by子句使用
- 例子:查询出employees中各部门的平均工资
- SQL> select department_id,avg(salary) from employees group by department_id;
- 包含在 GROUP BY 子句中的列不必包含在SELECT 列表中,所以可以写为:
- SQL> select avg(salary) from employees group by department_id;
- 可以进行多列的分组:
- SQL> select department_id,job_id,sum(salary) from employees group by department_id,job_id;
- 注:(1)不能在 where 子句中使用组函数(注意)。
- (2)可以在 HAVING 子句中使用组函数。
- 3.过滤分组 having子句
- 例子:部门最高工资比 1000高的部门
- SQL> select department_id,max(salary) from employees group by department_id having max(salary)>1000;
- 每一个部门下有很多员工,通过对部门分组,把是一个部门员工分好在当前部门下,计算出最高的工资对比
- 4.嵌套组函数
- 例子:显示平均工资的最大值
- SQL> select max(avg(salary)) from employees group by department_id;
orcale分组函数
最新推荐文章于 2023-07-25 11:23:51 发布