Oracle中分组函数

1.COUNT	
如果数据表中没有数据,返回的不是null,而是0.

2.AVG,MAX,MIN,SUM

3.分组函数和空值
分组函数省略列中的空值。
select sum(comm) from emp;
select avg(comm) from emp;
可以使用nvl函数处理null值
select avg(nvl(comm,0)) from emp;

4.GROUP BY 子句
出现在select列表中的字段或者出现在order by后面的字段,如果不是包含在分组函数中,
那么该字段必须同时在group by子句中出现。
包含在group by后面的字段,不必出现在select列表中。
可用where字句限制查询条件。
可使用order by指定排序的顺序。
如果没有group by子句,select列表中不允许出现字段(单行函数)与分组函数混用的情况。
select empno,sal from emp;--合法
select avg(sal) from emp;--合法
select empno,initcap(ename),avg(sal) from emp;--非法
不允许在where字句中使用分组函数
select deptno,avg(sal)
from emp
where avg(sal)>2000 --非法
group by deptno;

5.HAVING 子句
select deptno,job,avg(sal)
from emp
where hiredate>=to_date('2016-4-15','yyyy-mm-dd')
group by deptno,job
having avg(sal)>1200
order by deptno,job;

6.分组函数嵌套
select max(avg(sal))
from emp
group by deptno;


阅读更多
版权声明:本文仅供学习和交流使用,转载请注明出处。 https://blog.csdn.net/smile_from_2015/article/details/53408204
个人分类: oracle
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭