SQL基础7作业题

1、取得每个部门最高薪水的人员名称
select e.ename,t.maxsal,e.deptno
from emp e
join (select ename,max(sal) as maxsal,deptno from emp group by deptno) t
on e.deptno=t.deptno and t.maxsal=e.sal;
+-------+---------+--------+
| ename | maxsal  | deptno |
+-------+---------+--------+
| BLAKE | 2850.00 |     30 |
| SCOTT | 3000.00 |     20 |
| KING  | 5000.00 |     10 |
| FORD  | 3000.00 |     20 |
+-------+---------+--------+

2、哪些人的薪水在部门的平均薪水之上
平均薪资

select e.ename,e.deptno,e.sal,t.avgsal
from emp e
join (select avg(sal) as avgsal,ename,deptno from emp group by deptno) t
on e.sal > t.avgsal and e.deptno=t.deptno
order by e.deptno,e.sal;
+-------+--------+---------+-------------+
| ename | deptno | sal     | avgsal      |
+-------+--------+---------+-------------+
| KING  |     10 | 5000.00 | 2916.666667 |
| JONES |     20 | 2975.00 | 2175.000000 |
| SCOTT |     20 | 3000.00 | 2175.000000 |
| FORD  |     20 | 3000.00 | 2175.000000 |
| ALLEN |     30 | 1600.00 | 1566.666667 |
| BLAKE |     30 | 2850.00 | 1566.666667 |
+-------+--------+---------+-------------+

3、取得部门中(所有人的)平均的薪水等级
1)每个部分平均薪水的等级
select t.*,s.grade
from (select avg(sal) as avgsal,deptno from emp group by deptno) t
join salgrade s
on t.avgsal between s.losal and s.hisal;
+-------------+--------+-------+
| avgsal      | deptno | grade |
+-------------+--------+-------+
| 2916.666667 |     10 |     4 |
| 2175.000000 |     20 |     4 |
| 1566.666667 |     30 |     3 |
+-------------+--------+-------+
3 rows in set (0.02 sec)

2)每个部门薪水等级的平均值

select t.deptno,avg(t.grade) 
from (select e.deptno,e.ename,e.sal,s.grade
from emp e
join salgrade s
on e.sal between s.losal and s.hisal
order by e.deptno) t
group by deptno;
+--------+--------------+
| deptno | avg(t.grade) |
+--------+--------------+
|     10 |       3.6667 |
|     20 |       2.8000 |
|     30 |       2.5000 |
+--------+--------------+

4、不准用组函数(Max ),取得最高薪水
select ename,sal
from emp 
order by sal desc
limit 0,1;
+-------+---------+
| ename | sal     |
+-------+---------+
| KING  | 5000.00 |
+-------+---------+
1 row in set (0.00 sec)

5、取得平均薪水最高的部门的部门编号

平均薪水
select avg(sal) as avgs,deptno from emp group by deptno order by avgs desc limit 0,1; 
+-------------+--------+
| avgs        | deptno |
+-------------+--------+
| 2916.666667 |     10 |
+-------------+--------+
1 row in set (0.00 sec)

6、取得平均薪水最高的部门的部门名称

select t.deptno,d.dname,t.avgs
from (select avg(sal) as avgs,deptno from emp group by deptno order by avgs desc limit 0,1) t
join dept d
on d.deptno = t.deptno;
+--------+------------+-------------+
| deptno | dname      | avgs        |
+--------+------------+-------------+
|     10 | ACCOUNTING | 2916.666667 |
+--------+------------+-------------+
1 row in set (0.00 sec)

7、求平均薪水的等级最低的部门的部门名称
select t.deptno,d.dname,t.avgs
from (select avg(sal) as avgs,deptno from emp group by deptno order by avgs limit 0,1) t
join dept d
on d.deptno = t.deptno;
+--------+-------+-------------+
| deptno | dname | avgs        |
+--------+-------+-------------+
|     30 | SALES | 1566.666667 |
+--------+-------+-------------+
1 row in set (0.00 sec)

8、取得比普通员工(员工代码没有在 mgr 字段上出现的) 的最高薪水还要高的领导人姓名

    比“普通员工的最高薪水”还要高的一定是领导!
        没毛病!!!!

答:不知所云,不做了。

9、取得薪水最高的前五名员工
select ename,sal from emp order by sal desc limit 0,5;
+-------+---------+
| ename | sal     |
+-------+---------+
| KING  | 5000.00 |
| FORD  | 3000.00 |
| SCOTT | 3000.00 |
| JONES | 2975.00 |
| BLAKE | 2850.00 |
+-------+---------+
5 rows in set (0.00 sec)

10、取得薪水最高的第六到第十名员工
select ename,sal from emp order by sal desc limit 5,5;
+--------+---------+
| ename  | sal     |
+--------+---------+

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL基础教程 mobi》是一本关于SQL数据库语言的基础教程。SQL(Structured Query Language)是一种用于管理关系数据库系统的标准语言。通过学习这本教程,读者可以了解SQL的基本语法、数据查询和管理、数据操作和控制等方面的知识。 该教程的内容结构清晰,适合初学者入门。首先介绍了SQL的概念、起源和发展,让读者对SQL有一个全面的了解。接着,教程详细介绍了SQL的基本语法,包括数据库的创建与删除、表的创建与修改、数据的插入与更新、数据的查询等。通过具体的例子和实践操作,读者可以快速上手SQL语言。 教程还讲解了SQL中的数据查询与过滤,包括使用SELECT语句查询特定数据、使用WHERE子句进行条件过滤、使用ORDER BY子句进行排序、使用LIMIT子句限制返回结果数量等。读者可以学习到如何根据需求选择合适的查询方式,进行高效的数据提取。 此外,教程还介绍了SQL中数据的更新与删除操作,包括使用UPDATE语句修改数据、使用DELETE语句删除数据、使用ALTER TABLE语句修改表结构等。读者可以学习到如何对数据库中的数据进行修改和删除,保证数据的完整性和一致性。 总之,《SQL基础教程 mobi》是一本适合初学者入门的SQL教程,通过学习该教程,读者可以掌握SQL语言的基本知识和技能,能够进行数据库的基本操作和管理。无论是对于想要学习数据库技术的人,还是对于需要使用SQL语言进行数据管理的人来说,都是一本很好的参考书籍。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值