Mysql每日一题(行程与用户,困难※)

devtools/2024/11/16 1:44:19/

 今天给大家分享一个截止到目前位置,我遇到最难的一道mysql题目,非常建议大家亲手做一遍

 

 完整代码如下,这道题的主要难点是它有两个外键,以前没遇到过,我也没当回事,分享一下错误经验哈

当时我写的where判断条件是

where Users.banned="No" and(Trips.client_id=Users.users_id or Trips.driver_id=Users.users_id)

当时我就认为和下面代码写的

from Trips as T

inner join Users as U1 on T.client_id=U1.users_id

inner join Users as U2 on T.driver_id=U2.users_id

where U1.banned="No" and U2.banned="No"一样

我觉得系统应该会在我的系统应该像循环一样再判断完Trips.client_id=Users.users_id or 后,帮我分别判断一下

Trips.client_id=Users.users_id的时候Users.banned="No"?

Trips.driver_id=Users.users_id的时候Users.banned="No"?

结果并不会,给大家看一些官方题解,其中就介绍了这个问题

 

 反正我是狠狠的跳进了这个设计好的坑里,一直爬不出来,知道看了题解,这个题目我觉得很好,以后我希望我会经常拿出来看看。

select T2.request_at as "Day",ifnull(round(T1.c/T2.c,2),0) as "Cancellation Rate"
from (select T.request_at,ifnull(count(*),0) as c
from Trips as T 
inner join Users as U1 on T.client_id=U1.users_id
inner join Users as U2 on T.driver_id=U2.users_id
where U1.banned="No" and U2.banned="No"
group by T.request_at) as T2 left join 
(select T.request_at,ifnull(count(*),0) as c
from Trips as T 
inner join Users as U1 on T.client_id=U1.users_id
inner join Users as U2 on T.driver_id=U2.users_id
where U1.banned="No" and U2.banned="No" and T.status Like "ca%"
group by T.request_at) as T1 on T1.request_at=T2.request_at;


http://www.ppmy.cn/devtools/134310.html

相关文章

【golang-技巧】- 定时器使用-ticker

1.背景 定时实现清理/刷新 缓存定时调度任务… 2.实现 通过 time.NewTicker 实现 func (a *Alerts) Run(ctx context.Context, interval time.Duration) {t : time.NewTicker(interval)defer t.Stop()for {select {case <-ctx.Done():returncase <-t.C:a.gc()}} }3.结…

[代码随想录Day11打卡] 150. 逆波兰表达式求值 239. 滑动窗口最大值 (有点难度) 347.前 K 个高频元素 (有点难度) 总结

150. 逆波兰表达式求值 逆波兰表达式就是后缀表达式。我们日常接触到的12 * 34是中序表达式&#xff0c;中序表达式往往需要括号来指定执行操作的顺序。后序表达式1 2 3 4 就是顺序进行不需要括号。 按照输入的数据的类型可以分为数值和操作符。有效的算符为 ‘’、‘-’、’…

反向代理模块

1 概念 1.1 反向代理概念 反向代理是指以代理服务器来接收客户端的请求&#xff0c;然后将请求转发给内部网络上的服务器&#xff0c;将从服务器上得到的结果返回给客户端&#xff0c;此时代理服务器对外表现为一个反向代理服务器。 对于客户端来说&#xff0c;反向代理就相当于…

基于微信小程序的养老院管理系统的设计与实现,LW+源码+讲解

摘 要 伴随着互联网发展&#xff0c;其基础理论与技术都已完善&#xff0c;并积极参与到整个社会各个方面。它让信息可以通过媒体传播&#xff0c;相互配合信息管理专用工具能够为大家提供优质的服务。对于传统信息管理错乱、差错率高、信息安全系数差、工作强度大、耗时费力…

Rocky9/Ubuntu使用pip安装python的库mysqlclient失败解决方式

# Rocky9 直接使用pip安装mysqlclient会出现缺少依赖&#xff0c;需要先安装mysql-devel相关依赖。由于rocky9用MariaDB替代了MySQL&#xff0c;所以我们可以通过安装mariadb-devel来安装所需要的依赖。 如果Rocky9已经开启了powertool repo可以直接使用下面命令安装 dnf in…

Android 老项目适配 Compose 混合开发

app 模块下的 build.gradle 添加: buildFeatures {compose = true} composeOptions {kotlinCompilerExtensionVersion = "1.4.3"} 引用入 compose 组件库: val compose_version = "1.6.2" implementation("androidx.compose.ui:ui:$compose_versi…

Redis 典型应用 - 缓存(cache)

一、什么是缓存 缓存(cache)是计算机中的⼀个经典的概念.在很多场景中都会涉及到. 核⼼思路就是把⼀些常⽤的数据放到触⼿可及(访问速度更快)的地⽅,⽅便随时读取. 这⾥所说的"触⼿可及"是个相对的概念. 对于硬件的访问速度来说,通常情况下: CPU寄存器>内存>…

时序预测 | Python基于CNN-transformer时间序列预测

时序预测 | Python基于CNN-transformer时间序列预测 目录 时序预测 | Python基于CNN-transformer时间序列预测预测效果基本介绍参考资料 预测效果 基本介绍 时序预测 | Python基于CNN-transformer时间序列预测 Cnn-transformer-自适应稀疏自注意力ASSA-对比归一化contranorm预…