【347天】我愛刷題系列106(2018.01.18)

叨叨兩句

  1. 牛客網Java習題刷完了,換SQL習題接着刷

SQL習題001

1

查詢 薪資 大於 薪資最高的員工所在部門 的平均工資 和 薪資最低的員工所在部門 的平均工資 的平均工資 的員工信息。code

-- 查詢 薪資 大於 薪資最高的員工所在部門 的平均工資 和 薪資最低的員工所在部門 的平均工資 的平均工資 的員工信息。
--      sal  >                   10       200                    20             100         (100+200)/2     
--  sal > (100+200)/2
-- 1.薪資最高的員工所在部門 
select max(sal) from emp;
-- 10號部門
select deptno from emp where sal = (select max(sal) from emp);

-- 2. 10號部門的平均工資  2916
select avg(sal) from emp where deptno = (select deptno from emp where sal = (select max(sal) from emp));

-- 3.薪資最低的員工所在部門 
select min(sal) from emp;
-- 20號部門
select deptno from emp where sal = (select min(sal) from emp);

-- 4. 20號部門的平均工資  2175
select avg(sal) from emp where deptno = (select deptno from emp where sal = (select min(sal) from emp));

-- 5. 計算10和20號部門平均工資的平均工資
select (2916+2175)/2 from dual;

-- 6. 結果
select *
  from emp
 where sal >
       ((select avg(sal)
           from emp
          where deptno = (select deptno
                            from emp
                           where sal = (select max(sal) from emp))) +
       (select avg(sal)
           from emp
          where deptno = (select deptno
                            from emp
                           where sal = (select min(sal) from emp)))) / 2;
相關文章
相關標籤/搜索