一,组函数
count():求出全部的记录数
max():求出一组中的最大值
min():求出最小值
avg():求出平均值
sum():求和
select count(*) from emp;
select max(sal) from emp;
select min(sal) from emp;
select sum(sal) from emp;
select avg(sal) from emp;
二,分组统计
select deptno,count(empno) from emp group by deptno;
select deptno,round(avg(sal),2) from emp group by deptno;
如果程序中是用了分组函数,则有两种可以使用的情况:
1,程序中存在了group by,并指定了分组条件,这样可以将分组条件一起查询出来
2,如果不使用分组的话,则只能单独的使用分组函数
3,在使用分组函数的时候,不能出现分组函数和分组条件之外的字段
select deptno,empno,count(empno) from emp group by deptno,empno;
select d.dname,count(e.empno) from dept d,emp e where d.deptno=e.deptno group by d.dname;
分组函数只能在分组中使用,不允许在where语句之中出现,那么如果现在假设要指定分组的条件,则只能通过第二种条件的指令,having
select deptno,avg(sal) from emp group by deptno having avg(sal)>2000;
select job,sum(sal) su from emp
where job <> 'SALEEMAN'
group by job
having sum(sal)>5000
order by su asc;
只要一列上存在重复的内容才有可能考虑到分组,分组函数可以嵌套使用,但是在组函数嵌套使用的时候不能再出现分组条件的查询语句。