首页 > 其他分享 >错题集:确认率

错题集:确认率

时间:2024-01-05 18:55:57浏览次数:43  
标签:confirmed stamp 确认 错题 2021 id user

表: Signups

+----------------+----------+
| Column Name    | Type     |
+----------------+----------+
| user_id        | int      |
| time_stamp     | datetime |
+----------------+----------+
User_id是该表的主键。
每一行都包含ID为user_id的用户的注册时间信息。

 

表: Confirmations

+----------------+----------+
| Column Name    | Type     |
+----------------+----------+
| user_id        | int      |
| time_stamp     | datetime |
| action         | ENUM     |
+----------------+----------+
(user_id, time_stamp)是该表的主键。
user_id是一个引用到注册表的外键。
action是类型为('confirmed', 'timeout')的ENUM
该表的每一行都表示ID为user_id的用户在time_stamp请求了一条确认消息,该确认消息要么被确认('confirmed'),要么被过期('timeout')。

 

用户的 确认率 是 'confirmed' 消息的数量除以请求的确认消息的总数。没有请求任何确认消息的用户的确认率为 0 。确认率四舍五入到 小数点后两位 。

编写一个SQL查询来查找每个用户的 确认率 。

以 任意顺序 返回结果表。

查询结果格式如下所示。

示例1:

输入:
Signups 表:
+---------+---------------------+
| user_id | time_stamp          |
+---------+---------------------+
| 3       | 2020-03-21 10:16:13 |
| 7       | 2020-01-04 13:57:59 |
| 2       | 2020-07-29 23:09:44 |
| 6       | 2020-12-09 10:39:37 |
+---------+---------------------+
Confirmations 表:
+---------+---------------------+-----------+
| user_id | time_stamp          | action    |
+---------+---------------------+-----------+
| 3       | 2021-01-06 03:30:46 | timeout   |
| 3       | 2021-07-14 14:00:00 | timeout   |
| 7       | 2021-06-12 11:57:29 | confirmed |
| 7       | 2021-06-13 12:58:28 | confirmed |
| 7       | 2021-06-14 13:59:27 | confirmed |
| 2       | 2021-01-22 00:00:00 | confirmed |
| 2       | 2021-02-28 23:59:59 | timeout   |
+---------+---------------------+-----------+
输出: 
+---------+-------------------+
| user_id | confirmation_rate |
+---------+-------------------+
| 6       | 0.00              |
| 3       | 0.00              |
| 7       | 1.00              |
| 2       | 0.50              |
+---------+-------------------+
解释:
用户 6 没有请求任何确认消息。确认率为 0。
用户 3 进行了 2 次请求,都超时了。确认率为 0。
用户 7 提出了 3 个请求,所有请求都得到了确认。确认率为 1。
用户 2 做了 2 个请求,其中一个被确认,另一个超时。确认率为 1 / 2 = 0.5。


select  a.user_id, cast(cast(sum(case  b.action when 'confirmed' then 1 else 0 end )as decimal(9,2))/count(a.user_id) as decimal (9,2))  as confirmation_rate from  Signups as a left join  Confirmations as b on a.user_id=b.user_id group by a.user_id   里面有好多坑:1、将confirmed 设为1,其余为0,方便计算                          2、1/2两边都是整数,返回值为0,而不是0.5                          3、同时有两类,以前都是用连接,两边进行计算,这次的情况更复杂,两表连接后,计算规则不一样,这次规则有3种,一个是都为空,一个是存在确认,一个是全超时;



标签:confirmed,stamp,确认,错题,2021,id,user
From: https://www.cnblogs.com/Dongmy/p/17947809

相关文章

  • 探店智界S7:试驾后确认就是这个范儿!
    终于可以试驾智界S7了!在下定前,懂懂已经看过真车很多次,但是这一次要自己亲自驾驶智界S7,还是充满了期待和兴奋!一踏进门店,就被里面拥挤的人群“挡住”了,原来问界M9现车刚刚到店,很多用户都是家庭为单位来现场看车,把M9围了个严实。懂懂今天的主题是试驾S7,就不去凑M9的热闹了。S7的试驾也......
  • 探店智界S7:试驾后确认就是这个范儿!
    终于可以试驾智界S7了!在下定前,懂懂已经看过真车很多次,但是这一次要自己亲自驾驶智界S7,还是充满了期待和兴奋!一踏进门店,就被里面拥挤的人群“挡住”了,原来问界M9现车刚刚到店,很多用户都是家庭为单位来现场看车,把M9围了个严实。懂懂今天的主题是试驾S7,就不去凑M9的热闹了。S7的试......
  • SourceTree SSH第一次登录需要交互确认的问题
    问题在SourceTreeSSH配置完ssh之后向上提交代码的时候发现:Theserver'shostkeyisnotcachedintheregistry.Youhavenoguaranteethattheserveristhecomputeryouthinkitis.Theserver'srsa2keyfingerprintis:ssh-rsa2048**:**:**:**:**:**:**:**:**:*......
  • SourceTree SSH第一次登录需要交互确认的问题
    问题在SourceTreeSSH配置完ssh之后向上提交代码的时候发现:Theserver'shostkeyisnotcachedintheregistry.Youhavenoguaranteethattheserveristhecomputeryouthinkitis.Theserver'srsa2keyfingerprintis:ssh-rsa2048**:**:**:**:**:**:**:**:**:......
  • javaFX 弹出提示确认
    JavaFX弹出提示确认引言在JavaFX中,弹出提示确认框是一种常见的用户交互需求。当我们需要用户确认一个操作或者提醒用户某个状态时,弹出提示确认框是很有用的。本文将介绍如何使用JavaFX来实现一个弹出提示确认框,并提供相应的代码示例。JavaFX弹出提示确认框的实现JavaFX中提供......
  • 【深度学习】KMeans中自动K值的确认方法
    1 前言聚类常用于数据探索或挖掘前期,在没有做先验经验的背景下做的探索性分析,也适用于样本量较大情况下的数据预处理等方面工作。例如针对企业整体用户特征,在未得到相关知识或经验之前先根据数据本身特点进行用户分群,然后再针对不同群体做进一步分析;例如将连续数据做离散化,便于做......
  • 九、发布确认(高级)
    一、发布确认springboot版本1、确认机制方案2、代码架构图3、配置文件4、添加配置类5、消息生产者6、回调接口7、消息消费者8、结果分析二、回退消息1、Mandatory参数配置文件:2、消息生产者代码3、回调接口4、结果分析三、备份交换机......
  • 五、发布确认
    一、发布确认原理二、发布确认的策略1、开启发布确认的方法2、单个确认发布3、批量确认发布4、异步确认发布5、如何处理异步未确认消息6、以上3种发布确认速度对比......
  • TCP机制|确认应答、超时重传和连接机制
    TCP全称TransmissionControlProtocol,即传输控制协议,TCP对数据传输提供的管控机制,主要体现在两个方面:安全和效率。 一、TCP协议格式16位源/目的端口号:发送方的端口号,接收方的端口号32位序号:TCP数据报携带的数据的起始序号32位确认序号:期待对方发送的数据是从哪一个序号开始......
  • input type=tel 控制输入数字点击数字键盘的回车确认无反应,无法关闭数字键盘
    input事件总结:1、onfocus当input获取到焦点时触发2、onblur当input失去焦点时触发,注意:这个事件触发的前提是已经获取了焦点再失去焦点的时候才会触发该事件,用于判断标签为空3、onchange当input失去焦点并且它的value值发生变化时触发4、onkeydown按下按键时的事件触发5......