Datawhale打卡-MySQL(2019.3.4)

项目十

行程与用户(难度:困难)
Trips表中存有所有出租车的行程信息,每段行程信息,每段行程有唯一的键Id,Client_Id和Driver_Id 是User表中的User_Id 的外键,Status是枚举类型,枚举成员为(‘completed’,‘cancelled_by_driver’,'cancelled_by_client)

Trips表:

Id Client_Id Driver_Id City_Id Status Request_at
1 1 10 1 completed 2013-10-01
2 2 11 1 cancelled_by_driver 2013-10-01
3 3 12 6 completed 2013-10-01
4 4 13 6 cancelled_by-client 2013-10-01
5 1 10 1l completed 2013-10-02
6 2 11 6 completed 2013-10-02
7 3 12 6 compeletd 2013-10-02
8l 2 12 12 completed 2013-10-03
9 3 10 12 completed 2013-10-03
10 4 13 12 cancelled_by_driver 2013-10-03

Users表:

User_Id Banned Role
1 No Client
2 Yes Client
3 No Client
4 No Client
10 No Driver
11 No Driver
12 No Driver
13 No Driver

写一段SQL语句查出2013年10月1日至3日期间非禁止用户的取消率,基于上表,你的SQL语句应返回如下结果,取消率(Cancellation Rate)保留两位小数

Day Cancellation Rate
2013-10-01 0.33
2013-10-02 0.00
2013-10-03 0.50

Datawhale打卡-MySQL(2019.3.4)

项目十一

各部门前三高工资的员工(难度:中等)
使用项目七的employee表,清空,重新插入数据:

employee表:

Id Name Salary DepartmentId
1 Joe 70000l 1
2 Henry 80000 2
3 Sam 60000 2
4 Max 90000 1
5 Janet 69000 1
6 Randy 85000 1

编写一个SQL查询,找出每个部门工资前三高的员工,例如根据上述表格,查询结果应是:

Department Employee Salary
IT Max 90000
IT Randy 85000
IT Joe 70000l
Sales Henry 80000
Sales Sam 60000

Datawhale打卡-MySQL(2019.3.4)

项目十二

分数排名(难度:中等)
项目九的分数表,实现排名的功能,但是排名是连续的

输出:

Score Rank
4.00 1l
4.00 1
3.85 3
3.65 4
3.65 4
3.50 6

Datawhale打卡-MySQL(2019.3.4)