262. Trips and Users - 行程和用户 <Hard>
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 |
+------------+-------------------+
分析:主表 - Trips 表,
被司机或乘客取消的非禁止用户生成的订单数量:'cancelled_by_client' or 'cancelled_by_driver' 或 like 'cancelled_%'
非禁止用户生成的订单总数:需要保证trip表司机与乘客非ban!需要两个User表实例关联对应字段~
ps:注意sum与count函数的区别 !
sum(),求和累加,不计算空值;
count(),求行数,空值认为没有此项;
# count(IF(a.Status = 'cancelled_by_client' or a.Status = 'cancelled_by_driver' ,1, NULL))
# count(IF(a.Status like 'cancelled_%' ,1, NULL))
# sum(IF(a.Status like 'cancelled_%' ,1, 0)
# count(case when a.Status like 'cancelled_%' then 1 else NULL end)
# sum(a.Status != 'completed')select Request_at as Day,round(sum(IF(a.Status like 'cancelled_%' ,1, 0))/count(*),2) as `Cancellation Rate`
from Trips a
left join Users b on b.Users_Id = a.Client_Id
left join Users c on c.Users_Id = a.Driver_Id
where b.Banned = 'No' and c.Banned = 'No'
and a.Request_at between '2013-10-01' and '2013-10-03'
group by a.Request_at
262. Trips and Users - 行程和用户 <Hard>相关推荐
- LeetCode(262):行程和用户 Trips and Users(SQL)
2020.12.29 LeetCode 从零单刷个人笔记整理(持续更新) github:https://github.com/ChopinXBP/LeetCode-Babel 传送门:行程和用户 Tr ...
- LeetCode-262. 行程和用户( 262. Trips and Users)。
Trips 表中存所有出租车的行程信息.每段行程有唯一键 Id,Client_Id 和 Driver_Id 是 Users 表中 Users_Id 的外键.Status 是枚举类型,枚举成员为 ('c ...
- LeetCode MySQL 262. 行程和用户
文章目录 1. 题目 2. 解题 1. 题目 Trips 表中存所有出租车的行程信息. 每段行程有唯一键 Id,Client_Id 和 Driver_Id 是 Users 表中 Users_Id 的外 ...
- 262. 行程和用户
1 题目描述 显示找到非禁止的用户和司机,在指定日期内grouping一下.然后考虑是否cancel的情况. select Request_at as Day, ROUND(SUM((IF(Statu ...
- 262. Trips and Users
The Trips table holds all taxi trips. Each trip has a unique Id, while Client_Id and Driver_Id are b ...
- 【每日SQL打卡】DAY 3丨行程和用户【难度困难】
活动介绍: 「数据仓库技术交流群」已经正式启动每日SQL打卡,帮助大家扎实基础,努力工作之余,别忘了自我提升. 欢迎报名和邀请小伙伴参与,一个人可能走得很快,但一群人会走得很远.
- 微信的行程卡服务器异常,行程卡打不开服务器崩了解决方法 行程卡短信查询步教程...
今天滚天游戏网小编为大家带来行程卡打不开服务器崩了解决方法 行程卡短信查询步教程,希望能帮助到大家. 部分地区的健康码程序也无法打开,比如山东电子健康码.信息提示,由于当前访问人数过多,小程序可能会出 ...
- 苹果手机公交卡怎么一直显示行程中 关闭教程
苹果手机公交卡怎么一直显示行程中 用户使用公交卡结束后,没有关闭结束行程. 苹果手机公交卡行程关闭教程 打开苹果手机设置,点击钱包与Apple Pay 进入公交卡页面,打开服务模式,即可关闭一直显示行 ...
- AI 旅行工具大盘点!31 款 AI 旅行行程规划工具,一键规划旅行路线!
0. 未来百科 未来百科(https://nav.6aiq.com),是一个知名的AI产品导航网站 -- 为发现全球优质AI工具而生 .目前已 聚集全球3000+优质AI工具产品 ,旨在帮助用户发现全 ...
最新文章
- BroadcastReceiver 启动activity(在activity之外启动一个activity)
- CTFshow 爆破 web24
- excel winform 导入 导出_强大的 Excel 导入导出工具 hutool
- visual studio 2019安装配置可编写c/c++语言的IDE环境
- js正则相关知识点专题
- HTML 事件响应函数,HTML5: 事件处理函数的this指向问题
- 解读:AlphaGo之父倾力打造:The Predictron端到端训练与规划
- 【我的Android进阶之旅】Realm数据库学习资料汇总(持续更新)
- NES专题——一块带给无数人年少欢乐的CPU(6502)
- podfile文件用到的Ruby语言的学习和使用
- .Net Framework 中设置Web Proxy 的方法
- 已经买好了域名后怎么建立一个网站
- 静脉炎的症状有哪些?
- oracle数据库报错1033,ORACLE出现错误1033和错误ORA-00600的解决方法
- 【单目3D目标检测】MonoDLE论文精读与代码解析
- 爱好-C语言秘钥产生器
- TypeError: Cannot set properties of undefined (setting ‘xx‘)
- 【STM32Cube】学习笔记(二):超声波传感器
- 三态内容寻址寄存器(TCAM)
- 红帽Rhel7.6操作系统更换成Centos7.6的操作系统
热门文章
- 苹果发布新款iPad Pro!就换了个「芯」,转换器骚操作笑翻网友
- 闪存类型测试软件,轻松测闪存类型 测试软件P10Check上架谷歌商店
- 体验搜狐PaaS平台搜狐云景-自动调度(Autoscale)
- 据说只有高端机器才配运行K8S,网友:1G内存的渣渣跑起来了!
- linux合并pdf命令,科学网—[转载]linux下利用命令行工具pdftk对PDF进行合并分割(转载) - 崔鹏碧的博文...
- linux卸载mate,【重大更新】最完美的ADB一键卸载工具,新增卸载后悔重装功能,小白福利哈!基于160...
- Linux操作系统中网络配置命令
- JPEG 简易文档 V2.11
- 把自己从一个疯狂下载者变成一个真正的学习者
- 微信小程序新手容易犯的错误_新手程序员的错误以及如何避免它们