聚集函数--基于Oracle scott用户

聚集函数是以值的一个集合为输入,返回单个值的函数,SQL提供了五种聚集函数:

  • 平均值 avg
  • 最小值 min
  • 最大值 max
  • 总和 sum
  • 计数 count

基本聚集

基本聚集查询的结果只有一行

查询工资的均值:

select avg(sal)
from emp;

查询职位为“MANAGER"的工资均值:

select avg(sal) as avg_sal
from emp
where job = 'MANAGER';

查询员工总数:

select count(*)
from emp;

分组聚集 group by

在SQL查询使用分组时,一个很重要的事情是需要保证select种没有被聚集的属性只能是出现在group by 子句中的属性

查询每个部门的平均工资:

select deptno, avg(sal) as avg_sal
from emp
group by deptno;

having子句

having条件针对的是group by子句构成的分组

查询部门平均工资大于2000的部门的平均工资:

select deptno, avg(sal) as avg_sal
from emp
group by deptno
having avg(sal) > 2000;

对于空值的聚集

聚集函数根据以下原则处理空值:

  • 除了count(*)以外的所有聚集函数都忽略输入集合的空值
  • 空集的count运算为0,其他聚集函数在输入为空集时返回一个空值

以下举例说明:

1.查询总的酬金:

select sum(comm)
from emp;

结果:
在这里插入图片描述
2.查询部门10的总酬金:

select sum(comm)
from emp
where deptno = 10;

结果为null:
在这里插入图片描述
3.查询部门10具有酬金的员工数:

select count(comm)
from emp
where deptno = 10;

结果为0:
在这里插入图片描述

怎么读包含gruop by 与 having的查询语句:

  1. 根据from子句计算出一个关系
  2. 如果由where子句,将where子句的谓词应用在from子句得到的关系上
  3. 如果出现了gruop by,满足where谓词的元组通过gruop by子句形成分组
  4. 如果出现having子句, 它将应用到每个分组上,不满足的分组被抛弃
  5. select利用剩下的分组产生查询结果中的元组,即在每个分组上应用聚集函数来得到结果元组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值