列出与'SCOTT'从事相同工作的所有员工及部门名称、部门人数、平均工资

确认要使用的数据表
emp表:员工信息
dept表:获取部门名称
emp表:部门人数、平均工资的统计信息
确定已知的关联字段
dept表与emp表:emp.deptno=dept.deptno

第一步:获取与'SCOTT'从事相同工作的所有员工
SELECT e.ename
FROM emp e
WHERE e.job=(SELECT job
            FROM emp
            WHERE ename='SCOTT')
    AND e.ename<>'SCOTT'
第二步:获取部门名称,引入dept表
SELECT e.ename,d.dname
FROM emp e,dept d
WHERE e.job=(SELECT job
            FROM emp
            WHERE ename='SCOTT')
    AND e.ename<>'SCOTT'
    AND e.deptno=d.deptno
第三步:获取所需要的统计信息
SELECT deptno dpno,COUNT(*) count,AVG(sal)
FROM emp
GROUP BY deptno
合并之后获取结果
SELECT e.ename,d.dname,temp.count,temp.avg
FROM emp e,dept d,(SELECT deptno dpno,COUNT(*) count,AVG(sal) avg
                    FROM emp
                    GROUP BY deptno) temp
WHERE e.job=(SELECT job
            FROM emp
            WHERE ename='SCOTT')
    AND e.ename<>'SCOTT'
    AND e.deptno=d.deptno
    AND e.deptno=temp.dpno

猜你喜欢

转载自blog.csdn.net/weixin_39793123/article/details/77018034