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;
-------------------------------------------------------------------------------