【347天】我爱刷题系列106(2018.01.18)

叨叨两句

  1. 牛客网Java习题刷完了,换SQL习题接着刷

SQL习题001

1

查询 薪资 大于 薪资最高的员工所在部门 的平均工资 和 薪资最低的员工所在部门 的平均工资 的平均工资 的员工信息。

-- 查询 薪资 大于 薪资最高的员工所在部门 的平均工资 和 薪资最低的员工所在部门 的平均工资 的平均工资 的员工信息。
--      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;

你可能感兴趣的:(java)