《Oracle Database编程指南》15-05:聚合函数嵌套

封面:扫描上图二维码关注课程

1、定义

单行函数可以嵌套或者多层嵌套,而分组函数只能嵌套两层。

2、语法

如下是分组函数的三种格式:

  • G1(Group_item) = Result
    如SUM(Group_item),AVG(Group_item)
  • G1(G2(Group_item)) = Result
    如SUM(AVG(Group_item))
  • G1(G2(G3(Group_item))) = Result
    注意,这种特殊格式是不允许的。如MAX(SUM(AVG(Group_item))) 注意分组函数不能应用于单个值,此写法中Max最终会对一个值求最大值。

3、代码

/*
作者:AT阿宝哥
日期:2016年9月18日
愿景:参考官方资料,做最好的课程,成就更多职业人!
邮箱:[email protected]
CSDN:https://blog.csdn.net/goldentec
简书:https://www.jianshu.com/u/8a6075d7a2e0
说明:

注意:
    
*/
-------------------------------------------------------------------------------
--Sample1:    
SELECT sum(comm) ,nvl(deptno,0)
          FROM emp
          WHERE nvl(deptno,0) IN (40,80,0)
          Group  by deptno;


SELECT avg( sum(  comm  ) )
          from emp
          where nvl(deptno,0) IN (40,80,0)
          Group  by deptno;
-------------------------------------------------------------------------------
--Sample2:错误,分组函数的嵌套太深.
select count(SUM(avg(sal)))  from  emp;  --group function is nested too deeply

-------------------------------------------------------------------------------
--Sample3:在分组函数中可以嵌套单行函数.

select SUM( avg(  length(ename) )  )  from  emp  group  by deptno;

-------------------------------------------------------------------------------

发布了65 篇原创文章 · 获赞 167 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/goldentec/article/details/104875200
今日推荐