Oracle_sql_(7)


68.求部门中哪些人的薪水最高
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); 

69.求部门平均薪水的 等级 (先取平均薪水再等级 整数)
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);

70.求部门平均的 薪水等级 (先等级后平均值 小数)
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;

71.雇员中有哪些人是经理人(不是领导empno没有在mgr出现)
select ename from emp where empno in (select distinct mgr from emp);

72.不准用组(聚合)函数,求薪水的最高值(面试题)
select distinct sal
  from emp
 where sal not in
       (select distinct e1.sal from emp e1 join emp e2 on (e1.sal < e2.sal));

73.求平均薪水最高的部门的部门编号
select deptno, avg_sal
  from (select deptno, avg(sal) avg_sal from emp group by deptno)
 where avg_sal =
       (select max(avg_sal)
          from (select deptno, avg(sal) avg_sal from emp group by deptno));

74.求平均薪水的等级最低的部门的部门名
select dname, t1.deptno, grade, avg_sal
  from (select deptno, grade, avg_sal
          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)) t1
  join dept
    on (t1.deptno = dept.deptno)
where t1.grade =
       (select min(grade)
          from (select deptno, grade, avg_sal
                  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)));

75.求比普通员工的最高薪水还要高的经理人(领导,不是boss)的名称(思考题)
select ename from emp
where empno in (select distinct mgr from emp where mgr is not null)
   and sal >
(select max(sal) from emp
where empno not in (select distinct mgr from emp where mgr is not null));

76.求薪水最高的前5名雇员(重点掌握)
select ename, sal
  from (select ename, sal from emp order by sal desc)
where rownum <= 5;

77.求薪水最高的第6到第10名雇员(重点掌握)
select ename, sal
  from (select ename, sal, rownum r
          from (select ename, sal from emp order by sal desc))
 where r >= 6
   and r <= 10;

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZHOU_VIP

您的鼓励将是我创作最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值