Oracle聚合函数
聚合函数
定义:聚合函数对一组值执行计算,并返回单个值。聚合函数经常与SELECT语句的GROUP BY子句一起使用
--最大值:MAX(列名);各种数据类型都支持。
例如:SELECT MAX(SAL) FROM EMP;
--最小值:MIN(列名);各种数据类型都支持。
例如:SELECT MIN(SAL) FROM EMP;
--求和:SUM(列名);针对数字的统计。
例如:SELECT SUM(SAL) FROM EMP;
--平均值:AVG(列名);针对数字的统计。
例如:SELECT AVG(SAL) FROM EMP;
/*
数据统计:
COUNT(*):可以准确的返回表中的全部记录数;
COUNT(列名):统计不为NULL的记录数;
COUNT(DISTINCT 列名):消除重复数据之后的记录数。
*/
例如:SELECT COUNT(SAL) FROM EMP;
分组聚合
--分组的前提:筛选后的数据行中具有重复,允许单独一行或者多行进行分组。
SELECT E.DEPTNO,MAX(E.SAL)
FROM EMP E
GROUP BY E.DEPTNO;
--分组统计的约定条件:
--如果查询不使用 GROUP BY 子句,那么在 SELECT 子句中使用了聚合函数后,其它任何字段(即列名)都不允许出现;
SELECT COUNT(*) FROM EMP;
--如果查询中使用了 GROUP BY 子句,那么在 SELECT 子句中只允许出现聚合函数、分组字段(即列名),其它任何字段都不允许出现;
SELECT DEPTNO,COUNT(DEPTNO)
FROM EMP
GROUP BY DEPTNO;
--聚合函数允许嵌套,但是嵌套之后的 SELECT 子句中只允许出现嵌套函数,而不允许出现任何字段(包括分组字段)。
SELECT MAX(AVG(SAL)) FROM EMP GROUP BY DEPTNO;
--WHERE ROWNUM<N:ROWNUM 获取前N行的数据
SELECT * FROM EMP E WHERE ROWNUM < 2 ORDER BY E.SAL DESC;