美文网首页
Oracle笔记4

Oracle笔记4

作者: 菁华浮英梦 | 来源:发表于2018-07-17 22:24 被阅读241次

    16:多表连接子查询:

            --求部门中哪些人的薪水最高

                select ename,sal from emp

                join (select max(sal) max_sal,deptno from emp group by deptno) t

                on (emp.sal=t.max_sal and emp.deptno=t.deptno)

            --求部门平均薪水的等级

                select deptno,avg_sal,grade from

                (select deptno,avg(sal) avg_sal from emp group by deptno) t

                join salgrade s on (t.avg_sal between s.losal and s.hisal)

    17:--求部门的平均薪水等级:

            select deptno,avg(grade) from

            (select deptno,ename,grade from emp join salgrade s on (emp.sal between s.losal and

            s,hisal)) t

            group by deptno

    18:--雇员中有哪些人是经理人:

            select ename from emp where empno in (select mgr from emp);

            select ename from emp where empno in (select distinct mgr from emp);//非常有效率!

    19:--不用组函数求最高薪水

            select e1.sal from emp e1 join e2 on (e1.sal < e2.sal);

            select distinct e1.sal from emp e1 join e2 on (e1.sal < e2.sal);//去掉重复值!

            select distinct sal from emp where sal not in

            (select distinct e1.sal from emp e1 join e2 on (e1.sal < e2.sal));

    20:--平均薪水最高的部门的部门编号

            1、先求每个部门的平均薪水:

                select avg(sal),deptno from emp group by deptno;

            2、求平均薪水最大的那个值:

                select max(avg_sal) from

                (select avg(sal),deptno from emp group by deptno);

            3、根据值求编号:

                selectdeptno,avg_sal from

                    (select avg(sal) avg_sal,deptno from emp group by deptno)

                where avg_sal =

                    (select max(avg_sal) from

                        (select avg(sal) avg_sal,deptno from emp group by deptno));

        --平均薪水最高的部门的部门名称

        select dname from dept where deptno =

        (

                selectdeptno,avg_sal from

                    (select avg(sal) avg_sal,deptno from emp group by deptno)

                where avg_sal =

                    (select max(avg_sal) from

                        (select avg(sal) avg_sal,deptno from emp group by deptno));

         )

    相关文章

      网友评论

          本文标题:Oracle笔记4

          本文链接:https://www.haomeiwen.com/subject/skcnpftx.html