Oracle统计函数以及分组函数

统计函数

统计个数:Count()根据表中中的实际数据量返回结果
求和:SUM()是针对数字的统计
最小值:MIN()各种数据类型都支持
平均值:AVG()针对数字
最大值:MAX()各类型都支持
COUNT()函数三种使用形式:
COUNT(*)统计所有数据量
COUNT(字段)统计不为null所有数据量
COUNT(DISTINCT 字段)消除重复数据之后的结果

分组函数

GROUP BY
1、如果不使用GROUP BY ,只能出现统计函数
2、如果使用GROUP BY ,那么不能出现分组函数
例如:select ename,job,count(*)from emp GROUP BY job;
3、如果使用GROUP BY ,加嵌套函数不能出现其他任何字段
例如:SELECT job ,MAX(AVG(sal))FROM emp GROUP BY deptno;

多表查询以及多字段分组

SELECT d.deptno,d.name,d.loc,COUNT(e.empno),AVG(e.sal)
FROM emp e, dept d
WHERE e.deptno(+) = d.deptno
GROUP BY d.deptno,d.dname,d,loc;
GROUP BY 是在Where子句之后使用的 ,所以在使用是可以进行限定查询
多字段分组

HAVING子句和WHERE的区别

首先 where是出现在group by 之前的 并且where 中不允许出现统计函数,
其次是having子句是可以出现统计函数的并且出现在group by 之后的
例如:SELECT JOB,AVG(SAL) FROM EMP GROUP BY JOB HAVING AVG(SAL)>2000

发布了14 篇原创文章 · 获赞 15 · 访问量 325

猜你喜欢

转载自blog.csdn.net/weixin_42970847/article/details/103544243