数据库之分组函数

 分组函数对一组数据进行运算,针对一组数据(多行记录)只返回 一个结果,也称多行函数。
 
  常用的分组函数
        函数      功能说明                适用类型
        avg()    计算平均值              数值型
        count()  返回查询所得到的记录行数 任何数据类型
        max()    计算最大值              任何数据类型
        min()    计算最小值              任何数据类型
        sum()    求和                    数值型

  count()函数
      count(*)返回组中总记录数目;
      count(exp) 返回表达式exp值非空的记录数
      count(distinct(exp))返回表达式exp值不重复的,非空的记录数目。
      举例:
      select count(*) from emp;
      select count(comm) from emp;
      select count(distinct(deptno)) from emp;
 
  分组函数与空值
      分组函数省略列中的空值
      select avg(comm) from emp;
      select sum(comm) from emp;

      可使用NVL()函数强制分组函数处理空值
      select avg(nul(comm,0)) from emp;
      select sum(nul(comm,0))/count(comm) from emp;

group by 字句
   
    group by 子句将数据分成若干小组
    语法格式
      select column ,group_function(column)
      from  table
      [where condition]
      [group by group_by_expression]
      [order by column]
    举例:
  select deptno ,avg(sal) from emp group by deptno;
  select deptno ,avg(sal) from emp where hiredate>'20-4月-81'
group by deptno;
  select deptno,job,avg(sal) from emp group by deptno,job order by demptno desc;
    说明:
      1。出现在select列表中的字段,如果不是包含在组函数中,那么该字段必须同时在group by字句中出现
      2。包含在group by 字句中的字段则不必须出现在select列表中
      3  可使用where字句限定查询条件
      4 可使用order by 字句指定排序方式

having子句
    子句用于过滤分组
    语法格式:
        select column,group_function(column)
        from  table
        [where condition]
        [group by  group_by_expression]
        [having  group_condition]
        [order by column]

    举例:
      select  deptno,job,avg(sal)
      from  emp
      where  hiredate>=to_date('1981年05月01','yyyy-mm-dd')
      group by  deptno,job
      having avg(sal)>1200
      order by deptno,job;

转载于:https://www.cnblogs.com/freedom831215/archive/2010/01/08/1641834.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值