常用的oracle统计函数有以下几个
SUM
AVG
MIN
MAX
COUNT 计算字段中值的数目
COUNT(*) 计算查询结果的记录数
除COUNT(*)外,还可以使用DISTINCT关键字
记录统计
SELECT COUNT(*) 记录条数 FROM emp;
获取emp表所有数据的条数,不区分重复值
SELECT COUNT(comm) 获得提成的人数 FROM emp;
获取能够拿到提成的人的人数,只针对comm列种不为空的数据
SELECT COUNT(*) 获得提成的人数 FROM emp
WHERE comm IS NOT NULL;
SELECT COUNT( DISTINCT job)工作种类 FROM emp;
获取工作的种类
汇总统计
SELECT SUM(sal) 工资总额 ,sum(comm) 提成总计 FROM emp;
计算工资总额和提成总额
SELECT AVG(sal) 平均工资 ,AVG (comm) 平均提成 FROM emp;
计算平均工资和平均提成
SELECT SUM(sal)/14 平均工资 ,SUM
(comm)/4 平均提成 FROM emp;
上面两个的结果是一致的,也就是说avg是平均那个字段中不为空的条数,而不是总条数
最大值与最小值
与上面的用法一致
SELECT MIN(hiredate) 最早雇佣时间 ,MAX(hiredate)最晚雇佣时间 FROM emp;
SELECT MIN(ename) ,MAX(ename) FROM emp;
分组统计,这时候我们就要用到GROUP BY
SELECT job ,SUM (sal) FROM emp
GROUP BY job;

例如我们按照工作类型进行分类统计,计算每一个工种的薪水总额
我们也可以多层次分组
SELECT
job 工种 ,deptno ,SUM (sal) 薪水总计 FROM
emp
GROUP BY job,deptno
ORDER BY job;

先对工种进行分组,然后再对部门号进行分组