2 案例:
工资总额 : select sum(sal) from emp;
总人数: select count(*) from emp;
平均工资: select sum(sal)/count(*) 一,avg(sal) 二 from emp;
一二23352335
组函数会自动滤空:
select count(*), count(comm) from emp;
COUNT(*)COUNT(COMM)154
select count(*), count(nvl(comm,0)) from emp;
COUNT(*)COUNT(NVL(COMM,0))1515
group by:
1 在select 列表中所有未包含在组函数中的列都应该包含在group by子句中
公式为:select a,b,c,组函数(x) from 表 group by a,b,c;
如果写成select a,b,c,d组函数(x) from 表 group by a,b,c; 则会报错!!
2 将1倒过来就不一定成立 : select a,b,c,组函数(x) from 表 group by a,b,c,d; 照样可以执行
eg:
select deptno ,avg(sal) from emp group by deptno; --->deptno出现在 avg函数外,因此会在group by函数中出现。
select deptno ,ename,avg(sal) from emp group by deptno; ---》第 1 行出现错误:
ORA-00979: 不是 GROUP BY 表达式