这篇主要是 几个函数:
- avg 求平均值
--求所有人的平均工资
select avg(sal) 平均工资 from emp;
--求20号 部门的平均工资
select avg(sal) from emp where deptno = 20;
--求20号部门的平均工资 和部门编号
select deptno ,avg(sal) from emp where deptno = 20 group by deptno;
--按照部门编号进行分组,求每组的平均工资
select deptno,avg(sal) from emp group by deptno;
- Min:最小值
--求本公司薪资最低的人的工资
select min(sal) from emp;
--求本公司20部门的薪资最低的人的工资
select min(sal) from emp where deptno = 20;
--求本公司 每个部门的最低工资 group by 按部门划分 要用 group by
select deptno , min(sal) from emp group by deptno;
- Max:最大值
--max
--求本公司薪资最高的人的工资
select max(sal) from emp;
--求本公司20部门的薪资最高的人的工资
select max(sal) from emp where deptno = 20;
--求本公司 每个部门的最高工资 group by 按部门划分 要用 group by
select deptno, max(sal) from emp group by deptno;
- Sum: 求和
--sum
--求公司每月要发的总工资
select sum(sal) from emp;
--求每个月给30号部门发的总工资
select sum(sal) from emp where deptno = 30;
--求每个部门每个月要发的总工资
select deptno,sum(sal) from emp group by deptno;
- COUNT : 累加 计数
--求公司总人数
--计数
select count (*) from emp;
--求20号部门的总人数
select count (*) from emp where deptno = 20;
--求每个部门的总人数
select deptno,count(*) from emp group by deptno;
--尽量写 这个 上面那个count(*) 效率差 需要查询整个表
select deptno,count(empno) from emp group by deptno;
- having的使用
如果group by 后 又添加了条件 则在group by 后添加 having 和条件。
SELECT deptno,MAX(sal) maxSal,AVG(sal) avgSal,MIN(sal) minSal
FROM emp
GROUP BY deptno
HAVING AVG(sal)>2000 and deptno = 20;
结果: