【oracle资料整理】--【6】分组函数

分组函数   返回值是多条记录 或计算后的结果
      group by
      sum
      avg

<1>  计算记录的条数 count

  select count(*) from emp;
  select count(1) from emp;


  select count(comm) from emp; 字段上count 会忽略空值
      comm不为空值的记录的条数

  统计emp表中不同工作的个数 ????
   select count(distinct job) from emp;

   select distinct job from emp;
   select distinct job,empno from emp;
   select job,empno from emp;
    得到的效果是一样的,distinct 是消去重复行
                       不是消去重复的列
 <2>group  by 分组统计
     --在没有分组函数的时候
     --相当于distinct 的功能
     select job from emp group by job;

     select distinct job from emp;

   --有分组函数的时候
   --分组统计的功能
   统计每种工作的工资总额是多少??
     select job,sum(sal) from emp
          group by job;       --行之间的数据相加

     select sum(sal) from emp;  --公司的工资总额


 统计每种工作的平均工资是多少?? 
     select job,avg(sal) from emp
          group by job;   

    select avg(saL) from emp; --整个公司的平均工资


 显示平均工资>2000的工作???
   <1>统计每种工作的平均工资是多少
   <2>塞选出平均工资>2000的工作     

    从分组的结果中筛选 having
   select job,avg(sal) from emp
          group by job
          having avg(sal) > 2000;
   group by 经常和having搭配来筛选

计算工资在2000以上的各种工作的平均工资????
  select job,avg(sal) from emp
          where sal > 2000
          group by job
          having avg(sal) > 3000;

    一般group by  和 having搭配
        表示对分组后的结果的筛选
     where子句 --- 用于对表中数据的筛选  
 
  <3> max min
   select max(sal) from emp;
     公司的最高工资
   select min(sal) from emp ;
     公司的最低工资

找每个部门的最高和最低的工资??
  select deptno,max(sal),min(sal) from emp
     group by deptno;
找每个工作的最高和最低的工资??
  select job,max(sal),min(sal) from emp
     group by job;
找每个部门中每种工作的最高和最低的工资??
  select deptno,job,max(sal),min(sal)
   from emp
   group by deptno,job;

 select max(sal),min(sal)
   from emp
   group by deptno,job;

    单个字段如果没有被分组函数所包含,
       而其他字段又是分组函数的话     
      一定要把这个字段放到group by中去 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值