组函数、分组统计

一,组函数

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;

只要一列上存在重复的内容才有可能考虑到分组,分组函数可以嵌套使用,但是在组函数嵌套使用的时候不能再出现分组条件的查询语句。

原文地址:https://www.cnblogs.com/jinzhengquan/p/1949540.html