--group by对查询后的记录进行分组
--求每个部门的平均薪水
select deptno,avg(sal) as avg_sal from emp group by deptno
--常见的五种组函数
MAX()求最大值
MIN()求最小值
AVG()求平均值
SUM()求和
COUNT()求总共多少条记录
--求员工的最大工资
select max(sal) from emp
--求10号部门一共有多少个员工
select count(*) from emp where deptno=10
--having对分组以后的数据进行再过滤
--按照部门编号进行分组,分组之后求每一个部门的平均薪水,要求显示平均薪水大于2000的部门的部门编号和平均薪水
select deptno,avg(sal) from emp group by deptno having avg(sal)>2000
--Sql查询语句总结(共五行)
select * from emp
where 条件
group by 分组条件
having 对分组进行过滤
order by 排序条件
--子查询(也叫嵌套查询)
查多次,多个select嵌套出现,第一次的查询结果可以作为第二次的查询条件 或 表名
--需求1:求最大工资那个人的姓名和薪水
第一步:求最大工资 select max(sal) from emp
第二步:求最大工资那个人叫什么
select ename,sal from emp where sal=5000
第三步 合并
select ename,sal from emp where sal=(select max(sal) from emp);
--需求2:哪些人得工资位于 所有人得平均工资之上
1.求平均工资 select avg(sal) from emp
2. 工资大于平均工资的 人的姓名、工资
select ename,sal from emp where sal>2073.21428571429
3.合并
select ename,sal from emp where sal>(select avg(sal) from emp)