mysql查询平均工资最低的部门_查询出部门名称、部门的员工数、部门的平均工资、部门的最低收入雇员姓名和最高收入雇员的姓名...

如题:

查询出部门名称、部门的员工数、部门的平均工资、部门的最低收入雇员姓名和最高收入雇员的姓名

这是oracle的默认Scott用户以下的emp 和 dept 表间的一道思考题。

雇员表(emp)

记录了每一个雇员的基本信息

NO  字段         类型            描写叙述

1     empno       Number(4)    雇员编号

2     ename       Varchar2(10)      雇员姓名

3     job         Varchar2(9)     工作职位

4     mgr       Number(4)           雇员的领导(经理)编号

5     hierdate      date          入职日期

6     sal          Number(7,2)    月薪/工资

7     comm        Number(7,2)    奖金

8     deptno        Number(2)      雇员所属部门的编号

部门表(emp)

记录了每一个部门的基本信息

NO  字段       类型             描写叙述

1     deptno     Number(2)       部门编号(唯一)

2     dname     Varchar2(14)     部门名称

3     loc       Varchar2(13)     地址

分析:要查询出部门的员工数,平均工资。最低收入雇员姓名和最高收入雇员姓名。必须先知道部门的最高收入和最低收入

第一步:查询出部门名称,部门员工数,部门平均工资。部门最低收入和最高收入

select deptno, count(*), avg(sal), min(sal), max(sal) from emp group by deptno;

Center

第二步:查询最低收入者的姓名

select e.ename

from emp e, (select deptno, count(*), avg(sal), min(sal) min_sal, max(sal) max_sal from emp group by deptno) t

where e.deptno = e.deptno

and (e.sal = min_sal);

3a99150091792cc1a729655e527736ea.png

同理。也能够查询最高收入者的姓名

select e.ename

from emp e, (select deptno, count(*), avg(sal), min(sal) min_sal, max(sal) max_sal from emp group by deptno) t

where e.deptno = e.deptno

and (e.sal = max_sal);

84dc288cbb84d5f80c6268db97373d22.png

那怎样同一时候查询最低收入者和最高收入者的姓名呢?

第三步:给第一次查询出来的部门最高收入和最低收入同一时候关联两张emp 表,分别获取最高收入者和最高收入者的姓名

select d.dname, t.nu, t.avg_sal, t.min_sal, t.max_sal, e.ename, s.ename

from dept d, emp e, emp s ,

(select deptno, count(*) nu, avg(sal) avg_sal, min(sal) min_sal, max(sal) max_sal from emp group by deptno) t

where d.deptno = t.deptno

and (e.deptno = t.deptno and e.sal = t.min_sal)

and (s.deptno = t.deptno and s.sal = t.max_sal);

Center

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值