多行多列子查询:
问题:如何查询高于自己部门平均工资的员工信息
1、查询各个部门的平均工资和部门号
select e.deptno,avg(e.sal) from emp e group by e.deptno
2、把上面的查询结果看做是一个子表,并且命名为a
(select e.deptno,avg(e.sal) from emp e group by e.deptno) a
3、接着问题就是转化成两个表之间的连接查询了
select e.*,a.sal 部门平均工资 from emp e ,(select e.deptno,avg(e.sal) sal from emp e group by e.deptno) a where e.deptno=a.deptno and e.sal>a.sal
--子查询作为建表语句
create table temp as select * from student;