常用的统计函数有以下五个:COUNT(),MIN(),AVG()、MAX().五个通用统计函数
COUNT() :统计个数,根据表中具体的数据量返回结果
SUM() :求和 针对数字进行统计
AVG() :平均值 针对数字进行统计
MIN() :最小值 各种类型数据都支持
MAX() :最大值 各种类型数据都支持
如下操作
SQL> SELECT COUNT(EmPNO )人数 ,min(sal) 最低工资,max(sal)最高工资, TRUNC (avg(sal))平均工资,sum(sal)每月总支出 FROM EMP;
人数 最低工资 最高工资 平均工资 每月总支出
---------- ---------- ---------- ---------- ----------
14 800 5000 2073 29025
以上的函数当表中没有数据的时候,只有COUNT()函数会返回结果,,其它表为空NULL;COUNT则返回0;
COUNT(*) 返回表中全部记录数
COUNT(字段) 统计不为空的数据量
COUNT(DISTINCT 字符) 消除重复数据之后的结果
SQL> SELECT COUNT(*) ,COUNT(EMPNO) , COUNT(DISTINCT JOB) FROM EMP ;
COUNT(*) COUNT(EMPNO) COUNT(DISTINCTJOB)
---------- ------------ ------------------
14 14 5
SELECT [DISTINCT] * 分组列[别名]
FROM
WHERE
GROUP BY
SELECT deptno , COUNT(*),ROUND(AVG(sal),2)
FROM EMP
GROUP BY deptno;
SQL> SELECT deptno , COUNT(*),ROUND(AVG(sal),2)
2 FROM EMP
3 GROUP BY deptno;
DEPTNO COUNT(*) ROUND(AVG(SAL),2)
---------- ---------- -----------------
30 6 1566.67
20 5 2175
10 3 2916.67
SQL>
GROUP BY 使用以下三种条件
如果查询不使用GROUP BY 子句 ,那么 SELECT子句中只允许出现统计函数
错误代码:SELECT empno,COUNT(*) FROM emp;
正解代码:SELECT COUNT(*) FROM EMP ;
如果使用了GROUP BY 子句,那么SELECT子句中只允许出现分组字段,其它都不允许出现。
错误代码:SELECT ename ,job ,COUNT(*) FROM emp GROUP BY job
正解代码:SELECT job ,COUNT (*) FROM emp GROUP BY job ;
统计函数允许嵌套,,SELECT中只能出现嵌套函数