ORACLE 分组函数

分组函数作用于一组数据,并对一组数据返回一个值。
1.关键字AVG(平均值)、SUM(合计) ,在查询数值型的数据时可以使用AVG 和 SUM 函数。示例代码如下:

select avg(salary),sum(salary)
from employees
where department_id=30;

在这里插入图片描述
需要注意一个问题,AVG函数只是计算不为空的数据,可以使用NVL函数解决该问题,NVL函数使分组函数无法忽略空值。

SELECT  AVG(NVL(commission_pct, 0))
FROM   employees;

2.关键字MAX(最大值)、MIN(最小值),可以对任意数据类型的数据使用MIN和MAX 函数select

min(salary),max(salary)
from employees
where department_id=80; 

在这里插入图片描述
3. COUNT(计数)函数,COUNT(*) 返回表中记录总数,适用于任意数据类型,COUNT(expr) 返回expr不为空的记录总数。如以下两个例子:

SELECT COUNT(manager_id)
FROM   employees;

在这里插入图片描述

select count(*) from employees;

在这里插入图片描述
4.distinct关键字,例如COUNT(DISTINCT expr)返回expr非空且不重复的记录总数

select count(distinct manager_id)
from employees;

在这里插入图片描述
5.group by字句:在SELECT 列表中所有未包含在组函数中的列都应该包含在 GROUP BY 子句中, 包含在 GROUP BY 子句中的列不必包含在SELECT 列表中。另外需要注意的是,不能
在WHERE 子句中使用组函数,可以在 HAVING 子句中使用组函数。

SELECT   department_id, job_id, AVG(salary)
FROM    employees
GROUP BY department_id, job_id ;

在这里插入图片描述
5.过滤分组:having字句

SELECT   department_id, job_id, AVG(salary)
FROM     employees
GROUP BY department_id, job_id 
having AVG(salary)>7500;

在这里插入图片描述
6.嵌套组函数,例如查询各个职位平均工资的最大值

SELECT   MAX(AVG(salary))
FROM     employees
GROUP BY job_id;

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值