多行函数(分组函数)

select sum(sal)/count(*) ,avg(sal) from emp;

两个结果是一样的

select sum(comm)/count(*) ,sum(comm)/count(comm),avg(comm) from emp;

二、三是一样的,一不一样

因为分组函数会自动滤空,可以嵌套滤空函数,避免滤空

比如count(comm),不会计算comm为null的行。

count(*)和count(nvl(comm,0))两个值是一样的

sum(),

avg(),

max(),

min(),

count(),求个数 count(distinct deptno)

分组数据:group by

多个列的分组

group by 后面可以加的d,e但是select有啊,a,b,c。且函数中没有,则by后必须后啊,abc

过滤分组数据:having 字句,把分组后满足条件的筛选出来

select deptno,avg(sal) from

 emp group by deptno

having avg(sal)>2000;


where后不能使用多行函数

查询10号不能的平均工资

select deptno ,avg(sal)

from emp

group by deptno

having deptno=10;

select deptno,avg(sal)

from emp

where deptno=10

group by deptno;

//两个结果一样,但是此时where的效率更高

group by 语句的增强

break on null:取消报表格式

break on deptno skip 2;//相同的deptno只显示一次。每一跳两行




©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 引出 •请思考如下问题? –查询所有员工的每个月工资总和,平均工资? –查询工资最高和最低的工资是多少? –查询公...
    C_cole阅读 7,320评论 0 3
  • 1. select * from emp; 2. select empno, ename, job from em...
    海纳百川_4d26阅读 1,958评论 0 4
  • 查询是数据的一个重要操作。用户发送查询请求,经编译软件变异成二进制文件供服务器查询,后返回查询结果集给用户,查询会...
    产品小正阅读 1,459评论 0 2
  • 幕课oracle学习笔记 --!!!scott用户 --一.分组查询 --1.常用的分组函数:AVG(平均数),S...
    xiaoxiao苏阅读 1,300评论 0 5
  • 一、90天主要目标完成情况 1、公布了2.0版践行目标:每天专业学习1小时;每周与孩子一起跑步3次,不少于15...
    李特特阅读 168评论 0 0