子查询
什么是子查询?
在查询语句中的WHERE条件子句中,又嵌套了另一个查询语句
嵌套查询可由多个子查询组成,求解的方式是由里及外;
子查询返回的结果一般都是集合,故而建议使用IN关键字;
–求薪水最高的员工所在部门的员工信息
分析:
第一:
先求最高薪水:
第二: 求最高薪水得部门号:
第三:求部门为10的员工信息:
聚合函数
– 从含义上讲,count(1) 与 count() 都表示对全部数据行的查询。
– count(字段) 会统计该字段在表中出现的次数,忽略字段为null 的情况。即不统计字段为null
的记录。
– count() 包括了所有的列,相当于行数,在统计结果的时候,包含字段为null 的记录;
– count(1) 用1代表代码行,在统计结果的时候,包含字段为null 的记录 。
题目:
求部门平均薪水大于2000 的部门
select avg(sal),deptno from emp
group by deptno
having avg(sal)>2000
where写在group by前面.
要是放在分组后面的筛选
要使用HAVING…
因为having是从前面筛选的字段再筛选,而where是从数据表中的>字段直接进行的筛选的