MySQL|基础|实战提高
1.任务描述
- TASK1:各部门工资最高的员工(难度:中等)
创建 Employee 表,包含所有员工信息,每个员工有其对应的 Id, salary 和 department Id
Id |
Name |
Salary |
DepartmentId |
1 |
Joe |
70000 |
1 |
2 |
Henry |
80000 |
2 |
3 |
Sam |
60000 |
2 |
4 |
Max |
90000 |
1 |
创建 Department 表,包含公司所有部门的信息
编写一个 SQL 查询,找出每个部门工资最高的员工。例如,根据上述给定的表格,Max 在 IT 部门有最高工资,Henry 在 Sales 部门有最高工资
应该输出:
Department |
Employee |
Salary |
IT |
Max |
90000 |
Sales |
Henry |
80000 |
- TASK2:换座位(难度:中等)
请创建如下所示 seat 表:
id |
student |
1 |
Abbot |
2 |
Doris |
3 |
Emerson |
4 |
Green |
5 |
Jeames |
输出结果如下:
id |
student |
1 |
Doris |
2 |
Abbot |
3 |
Green |
4 |
Emerson |
5 |
Jeames |
注意:
如果学生人数是奇数,则不需要改变最后一个同学的座位
- TASK3:分数排名(难度:中等)
编写一个 SQL 查询来实现分数排名。如果两个分数相同,则两个分数排名(Rank)相同。请注意,平分后的下一个名次应该是下一个连续的整数值。换句话说,名次之间不应该有“间隔”
创建以下 score 表:
Id |
Score |
1 |
3.50 |
2 |
3.65 |
3 |
4.00 |
4 |
3.85 |
5 |
4.00 |
6 |
3.65 |
根据上述给定的 scores 表,你的查询应该返回(按分数从高到低排列):
Score |
Rank |
4.00 |
1 |
4.00 |
1 |
3.85 |
2 |
3.65 |
3 |
3.65 |
3 |
3.50 |
4 |
- TASK4:行程和用户(难度:困难)
Trips 表中存所有出租车的行程信息。每段行程有唯一键 Id,Client_Id 和 Driver_Id 是 Users 表中 Users_Id 的外键。Status 是枚举类型,枚举成员为 (‘completed’, ‘cancelled_by_driver’, ‘cancelled_by_client’)