SQL 子查询以及子查询作为建表语句

时间:2022-08-18 23:48:32

多行多列子查询:

问题:如何查询高于自己部门平均工资的员工信息

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;