【力扣白嫖日记】1934.确认率

news2024/12/29 8:59:55

前言

练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。

今日题目:

1934.确认率
表:Signups

列名类型
user_idint
time_stampdatetime

User_id是该表的主键。每一行都包含ID为user_id的用户的注册时间信息。

表:Confirmations

列名类型
user_idint
time_stampdatetime
actionENUM

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

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

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


我那不值一提的想法:

  • 首先梳理表内容,题干一共给了两张表,一张登录表,记录了用户id,时间戳,一张确认表,记录了用户id,时间戳,和响应状态(包括确认,超时)
  • 其次分析思路,需要查询用户的确认率,确认率也就是确认的消息除以请求消息的总数,如果没有任何请求消息,则确认率为0
  • 这道题难度不大,就是求各用户的action = "confirmed"的总数除以各用户count(action)的总数。
  • 一开始我不知道咋了,脑壳发卡了,用的笨办法
with all_count as (
select s.user_id,count(c.user_id) as all_counts
from Confirmations c 
right join Signups s 
on c.user_id = s.user_id
group by user_id)
,
con_count as (
select s.user_id,count(c.action) as con_counts
from Confirmations c 
right join Signups s 
on c.user_id = s.user_id and action = "confirmed"
group by user_id)

select a.user_id,ifnull(round(c.con_counts/a.all_counts,2),0) as confirmation_rate
from all_count a 
left join con_count c 
on a.user_id = c.user_id
  • 后来突然反应过来不就if判断语句就可以了吗
select s.user_id,round(ifnull(sum(if(c.action = "confirmed",1,0))/count(c.action),0),2) as confirmation_rate 
from Signups s 
left join Confirmations c 
on s.user_id = c.user_id
group by s.user_id

结果:

在这里插入图片描述


总结:

能运行就行。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1521850.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

线性回归 quickstart

构建一元一次方程 100个(X, y ),大概是’y3x4’ import numpy as npnp.random.seed(42) # to make this code example reproducible m 100 # number of instances X 2 * np.random.rand(m, 1) # column vector y 4 3 * X np.random…

4.10.CVAT——3D对象标注

文章目录 1. 创建任务2. 3D 任务工作区3.标准 3D 模式 Standard 3D mode4. 用长方体进行注释4.1. 用shapes进行注释4.2. 使用长方体进行跟踪Tracking 使用 3D 注释工具来标记 3D 对象和场景,例如车辆、建筑物、景观等。 1. 创建任务 要创建 3D 任务,您必…

PS学习-抠图-蒙版-冰块酒杯等透明物体

选中图,ctrlA 全选 ctrlC复制 创建一个蒙版图层 选中蒙版Alt 点击进入 ctrlv 复制 ctrli 反转 原图层 ctrldelete填充为白色 添加一个背景,这个方法通用 首选创建一个 拖到最底部 给它填充颜色 这个可能是我图片的原因。视频是这样做的

《古滇传说水龙吟》敖诀扮演者李亚云

2024年2月28日,演员李亚云参演新剧古滇传说原创系列剧第一部《水龙吟》在浙江横店影视城开机拍摄。该剧由中共昆明市西山区委宣传部、石林县委宣传部、昆明滇池国家旅游度假区管委会文旅投促局、云南民族电影制片厂、云南卫视、昆明影视拍摄服务中心支持&#xff0c…

8:00面试,8:06就出来了,问的问题有点变态。。。

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到9月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…

BMP280 arduino调试

终于成功了。 #include <SPI.h> //定义数据类型 #define s32_t long signed int #define u32_t long unsigned int #define u16_t unsigned short #define s16_t signed short // 定义从设备选择引脚 const int chipSelectPin 10; //定义BMP280寄存器/// unsigned int …

Java面向对象案例之描述专业和学生(4)

类的方法图 学生类&#xff1a; 属性&#xff1a;学号&#xff0c;姓名&#xff0c;年龄&#xff0c;所学习的专业方法&#xff1a;学习的方法&#xff0c;描述学习状态。描述内容包括姓名、学号、年龄、所学习的专业信息 专业类&#xff1a; 属性&#xff1a;专业编号&#xf…

【Poi-tl Documentation】自定义行删除标签

前置说明&#xff1a; <dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</artifactId><version>1.12.1</version> </dependency>模板样式&#xff1a; 删除行表格测试.docx 实现思路&#xff1a;通过定制占位…

监视和内存观察

监视和内存观察 5.监视和内存观察5.1 监视5.2 内存 5.监视和内存观察 在调试的过程中我们&#xff0c;如果要观察代码执行过程中&#xff0c;上下文环境中的变量的值&#xff0c;有哪些方法呢&#xff1f; 这些观察的前提条件一定是开始调试后观察&#xff0c;比如&#xff1…

【深度学习模型移植】用torch普通算子组合替代torch.einsum方法

首先不得不佩服大模型的强大之处&#xff0c;在算法移植过程中遇到einsum算子在ONNX中不支持&#xff0c;因此需要使用普通算子替代。参考TensorRT - 使用torch普通算子组合替代torch.einsum爱因斯坦求和约定算子的一般性方法。可以写出简单的替换方法&#xff0c;但是该方法会…

AI健身教练-引体向上-俯卧撑计数-仰卧起坐姿态估计-康复训练姿态识别-姿态矫正

在AI健身应用中&#xff0c;通过关键点检测技术可以实现对用户动作的精准捕捉和分析&#xff0c;从而进行统计计数和规范性姿态识别。 统计计数&#xff1a;比如在做瑜伽、健身操等运动时&#xff0c;系统可以通过对人体关键点&#xff08;如手部、脚部、关节等&#xff09;的…

MySQL语法分类 DQL(4)聚合函数

为了更好的学习这里给出基本表数据用于查询操作 create table student (id int, name varchar(20), age int, sex varchar(5),address varchar(100),math int,english int );insert into student (id,name,age,sex,address,math,english) values (1,马云,55,男,杭州,66,78),…

GPT实战系列-LangChain构建自定义Agent

GPT实战系列-LangChain构建自定义Agent LangChain GPT实战系列-LangChain如何构建基通义千问的多工具链 GPT实战系列-构建多参数的自定义LangChain工具 GPT实战系列-通过Basetool构建自定义LangChain工具方法 GPT实战系列-一种构建LangChain自定义Tool工具的简单方法 GPT…

Navicat 面试题及答案整理,最新面试题

Navicat 在数据库管理中的主要用途有哪些&#xff1f; Navicat 是一款数据库管理工具&#xff0c;其主要用途包括&#xff1a; 1、多数据库支持&#xff1a; Navicat 支持多种数据库连接&#xff0c;包括 MySQL、Oracle、PostgreSQL、SQLite、SQL Server 等&#xff0c;方便用…

学点Java打小工_Day4_数组_冒泡排序

1 数组基本概念 程序算法数据结构 算法&#xff1a;解决程序的流程步骤 数据结构&#xff1a;将数据按照某种特定的结构来存储 设计良好的数据结构会导致良好的算法。 ArrayList、LinkedList 数组是最简单的数据结构。 数组&#xff1a;存放同一种类型数据的集合&#xff0c;在…

Python笔记|字符串的转义

重新梳理一遍python的基础知识 除了数字&#xff0c;Python 还可以操作字符串。字符串有多种表现形式&#xff0c;用单引号&#xff08;……&#xff09;或双引号&#xff08;"……"&#xff09;标注的结果相同 。反斜杠 \ 用于转义&#xff1a; >>>spam e…

git push解决办法:! [remote rejected] prod -> prod (pre-receive hook declined)

今天想把最近改的东西上传到Gogs上发版一下子的&#xff0c;但是发现有冲突合并不了&#xff0c;于是我切回自己的分支合并了prod&#xff0c;把冲突处理了一下子&#xff0c;还又增加了一点修改&#xff0c;push后.......又回到prod进行git push&#xff0c;哦豁~这就出了问题…

Linux网络编程: 以太网帧Frame/ARP/RARP详解

一、TCP/IP五层模型 物理层&#xff08;Physical Layer&#xff09;&#xff1a;物理层是最底层&#xff0c;负责传输比特流&#xff08;bitstream&#xff09;以及物理介质的传输方式。它定义了如何在物理媒介上传输原始的比特流&#xff0c;例如通过电缆、光纤或无线传输等。…

稀碎从零算法笔记Day19-LeetCode:相交链表

题型&#xff1a;链表基本操作 链接&#xff1a;160. 相交链表 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&…

人形机器人进展:IEEE Robotics出版双臂通用协同机械手操作架构

文章目录 1. Main2. My ThoughtsReference彩蛋a. OpenAI 投资: 人形机器人公司 Figure AIb. 人工智能软件工程师 Devin 上线 1. Main 图1 人居环境下的人形双臂机器人系统 通用人形机器人 作为近年来机器人与AI交叉领域的研究热点和技术竞争高地&#xff0c;因其具备在 非结构化…