3.分组函数

博客介绍了Oracle组函数类型,如avg、count等。说明了不同组函数适用的数据类型,如avg和sum用于number类型。还提及count的使用,包括去重和计算非null值总数。阐述了组函数的计算,如avg的计算方式,以及group by的应用,如求各部门平均工资,同时指出组函数在where和having中的使用规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

组函数类型:avg、count、max、min、stddev、sum

  1. 查询员工中工资的平均值,最大值,最小值,总和
select avg(salary),max(salary),min(salary),sum(salary) from employees;

任何数据类型都可以使用max和min,avg和sum只能使用number类型
count记录数据条数

select count(salary),count(1),count(2),count(*) from employees;

avg(salary) = sum(salary)/count(salary),avg只计算不为null的值的平均值

select avg(salary),sum(salary)/count(salary) from employees;

count()只计算列中不为null的数据的总数,如下总数107,不为null的只有35个,执行结果35

select count(commission_pct) from employees;

计算真实的平均值应该如下:

select sum(commission_pct)/count(*), avg(commission_pct),sum(commission_pct)/count(commission_pct) from employees;

或者

select sum(commission_pct)/count(nvl(commission_pct,1)) from employees;

count去重用distinct

select count(distinct department_id) from employees;

group by
求各部门的平均工资

select department_id,avg(salary) from employees group by department_id;

求各部门不同工种的平均工资

select department_id,job_id,avg(salary) from employees group by department_id,job_id;

department_id可以去掉不查询,如下

select avg(salary) from employees group by department_id;

不能在where中使用组函数,可以在having中使用组函数

select avg(salary) from employees having avg(salary) > 4000;

组函数可以嵌套(嵌套组函数必须有group by)

select max(avg(salary)) from employees group by department_id;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值