博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
力扣——行程与用户(数据库的题
阅读量:4624 次
发布时间:2019-06-09

本文共 2352 字,大约阅读时间需要 7 分钟。

Trips 表中存所有出租车的行程信息。每段行程有唯一键 Id,Client_Id 和 Driver_Id 是 Users 表中 Users_Id 的外键。Status 是枚举类型,枚举成员为 (‘completed’, ‘cancelled_by_driver’, ‘cancelled_by_client’)。

+----+-----------+-----------+---------+--------------------+----------+| 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     |    1    |     completed      |2013-10-02|| 6  |     2     |    11     |    6    |     completed      |2013-10-02|| 7  |     3     |    12     |    6    |     completed      |2013-10-02|| 8  |     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 表存所有用户。每个用户有唯一键 Users_Id。Banned 表示这个用户是否被禁止,Role 则是一个表示(‘client’, ‘driver’, ‘partner’)的枚举类型。

+----------+--------+--------+| Users_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日 至 2013年10月3日 期间非禁止用户的取消率。基于上表,你的 SQL 语句应返回如下结果,取消率(Cancellation Rate)保留两位小数。

+------------+-------------------+|     Day    | Cancellation Rate |+------------+-------------------+| 2013-10-01 |       0.33        || 2013-10-02 |       0.00        || 2013-10-03 |       0.50        |+------------+-------------------+
# Write your MySQL query statement belowSELECT t.request_at as Day, round(count( IF ( t.STATUS != "completed", t.STATUS, NULL ) ) / count(t.STATUS),2) as `Cancellation Rate` FROM trips t INNER JOIN users u ON u.Users_Id = t.Client_Id WHERE u.Banned = "No" and t.request_at between "2013-10-01" and "2013-10-03" GROUP BY t.request_at

 

转载于:https://www.cnblogs.com/JAYPARK/p/10356561.html

你可能感兴趣的文章
Visual Basic开发实战1200例(第I卷)pdf
查看>>
详细讲解Quartz.NET
查看>>
Hibernate五大核心接口简介
查看>>
提高生产性工具(四) - XML数据库的尝试
查看>>
ural 1005 Stone Pile DP
查看>>
15个极好的Linux find命令示例(二)
查看>>
sql loader
查看>>
UIDatePicker封装
查看>>
破损的键盘
查看>>
第八届蓝桥杯-承压计算
查看>>
callable函数
查看>>
day15—jQuery UI之widgets插件
查看>>
springboot测试
查看>>
tabhost改变标签颜色
查看>>
让bootstrap-table支持高度百分比
查看>>
Activity之间传递参数
查看>>
RunTime.getRunTime().addShutdownHook用法
查看>>
mysql 查看当前登陆用户匹配原则及权限user()与current_user()
查看>>
TENDA-F322路由器管理工具
查看>>
Quartz-基础
查看>>