200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 查询出部门名称 部门的员工数 部门的平均工资 部门的最低收入雇员姓名和最高收入雇

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

时间:2018-10-13 22:45:20

相关推荐

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

如题:

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

这是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) 地址

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

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

[sql]view plaincopy selectdeptno,count(*),avg(sal),min(sal),max(sal)fromempgroupbydeptno;

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

[sql]view plaincopy selecte.ename fromempe,(selectdeptno,count(*),avg(sal),min(sal)min_sal,max(sal)max_salfromempgroupbydeptno)t wheree.deptno=e.deptno and(e.sal=min_sal);

同理,也可以查询最高收入者的姓名

[sql]view plaincopy selecte.ename fromempe,(selectdeptno,count(*),avg(sal),min(sal)min_sal,max(sal)max_salfromempgroupbydeptno)t wheree.deptno=e.deptno and(e.sal=max_sal);

那如何同时查询最低收入者和最高收入者的姓名呢?

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

[sql]view plaincopy selectd.dname,t.nu,t.avg_sal,t.min_sal,t.max_sal,e.ename,s.ename fromdeptd,empe,emps, (selectdeptno,count(*)nu,avg(sal)avg_sal,min(sal)min_sal,max(sal)max_salfromempgroupbydeptno)t whered.deptno=t.deptno and(e.deptno=t.deptnoande.sal=t.min_sal) and(s.deptno=t.deptnoands.sal=t.max_sal);

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。