1633. 各赛事的用户注册率

简介: 1633. 各赛事的用户注册率

说在前面

🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。

题目描述

用户表: Users

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| user_id     | int     |
| user_name   | varchar |
+-------------+---------+
user_id 是该表的主键(具有唯一值的列)。
该表中的每行包括用户 ID 和用户名。

注册表: Register

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| contest_id  | int     |
| user_id     | int     |
+-------------+---------+
(contest_id, user_id) 是该表的主键(具有唯一值的列的组合)。
该表中的每行包含用户的 ID 和他们注册的赛事。

编写解决方案统计出各赛事的用户注册百分率,保留两位小数。

返回的结果表按 percentage降序 排序,若相同则按 contest_id升序 排序。

返回结果如下示例所示。

示例 1:

输入:
Users 表:
+---------+-----------+
| user_id | user_name |
+---------+-----------+
| 6       | Alice     |
| 2       | Bob       |
| 7       | Alex      |
+---------+-----------+
Register 表:
+------------+---------+
| contest_id | user_id |
+------------+---------+
| 215        | 6       |
| 209        | 2       |
| 208        | 2       |
| 210        | 6       |
| 208        | 6       |
| 209        | 7       |
| 209        | 6       |
| 215        | 7       |
| 208        | 7       |
| 210        | 2       |
| 207        | 2       |
| 210        | 7       |
+------------+---------+
输出:
+------------+------------+
| contest_id | percentage |
+------------+------------+
| 208        | 100.0      |
| 209        | 100.0      |
| 210        | 100.0      |
| 215        | 66.67      |
| 207        | 33.33      |
+------------+------------+
解释:
所有用户都注册了 208、209 和 210 赛事,因此这些赛事的注册率为 100% ,我们按 contest_id 的降序排序加入结果表中。
Alice 和 Alex 注册了 215 赛事,注册率为 ((2/3) * 100) = 66.67%
Bob 注册了 207 赛事,注册率为 ((1/3) * 100) = 33.33%

解题思路

该查询语句主要包含以下几个部分:

  • SELECT:用于指定要查询的列,包括比赛编号 contest_id 和比赛报名人数在总用户数中的百分比 percentage。
  • ROUND:用于将计算出的百分比结果保留两位小数。
  • COUNT:用于统计每个比赛的报名人数。
  • SELECT COUNT(*) FROM users:用于查询用户总数,并将其作为分母计算每个比赛的报名人数在总用户数中的百分比。
  • GROUP BY:用于将查询结果按照比赛编号进行分组。
  • ORDER BY:用于按照百分比和比赛编号对查询结果进行排序,其中 DESC 表示降序排列。

AC代码

# Write your MySQL query statement below
select contest_id , round(count(user_id) * 100/ (select count(*) from users), 2) percentage 
from Register
group by contest_id
order by percentage desc, contest_id

公众号

关注公众号『前端也能这么有趣』,获取更多有趣内容。

说在后面

🎉 这里是 JYeontu,现在是一名前端工程师,有空会刷刷算法题,平时喜欢打羽毛球 🏸 ,平时也喜欢写些东西,既为自己记录 📋,也希望可以对大家有那么一丢丢的帮助,写的不好望多多谅解 🙇,写错的地方望指出,定会认真改进 😊,偶尔也会在自己的公众号『前端也能这么有趣』发一些比较有趣的文章,有兴趣的也可以关注下。在此谢谢大家的支持,我们下文再见 🙌。

目录
相关文章
|
2天前
|
数据可视化 数据挖掘
问卷填写率优化:吸引更多受访者的秘诀
**摘要:** 提升问卷填写率的关键在于设计简洁的问卷、选择恰当的分发渠道和设置激励措施。确保问题清晰无歧义,视觉呈现吸引人。利用社交媒体、定时发送及鼓励分享来扩大覆盖。提供匹配受众兴趣的奖励,如小礼品或服务优惠,强调参与的公益价值,以及提供即时反馈以增强参与感。理解和尊重目标受众,以提高数据收集的效率和质量。
3 0
|
6天前
三分钟教会你!客户扫码预约活动后,如何快速核销记录?
我们可以通过“提交成功页设置获取核销凭证”,结合“标记处理进度”功能,对活动预约记录进行手动核销。
|
2月前
|
JavaScript Java 新能源
基于Java的新能源充电系统的设计与实现(亮点:完整合理的充电流程,举报反馈机制、余额充值、在线支付、在线聊天)
基于Java的新能源充电系统的设计与实现(亮点:完整合理的充电流程,举报反馈机制、余额充值、在线支付、在线聊天)
144 1
|
2月前
|
安全 开发者
《源于支付宝的人脸认证:速度快、体验好、通过率高》
《源于支付宝的人脸认证:速度快、体验好、通过率高》
38 0
|
7月前
|
数据可视化 机器人
使用RPA轻松实现淘宝评价自动回复
八爪鱼RPA是一款经验丰富的自动化流程处理软件,它可以模拟人在电脑上的操作,按照预设的规则自动执行任务。对于淘宝评价自动回复的场景,可以帮助卖家自动获取评价信息,并根据预设的关键词进行智能化回复。
一对一直播源码,提升用户注册率的常用小技巧
一对一直播源码,提升用户注册率的常用小技巧
|
开发者
参与开发者移动端需求调研问卷,赢取100元话费、积分等好礼!
参与开发者移动端需求调研问卷,赢取100元话费、积分等好礼!
在千牛卖家中心如何发布淘宝宝贝?大概需要花费多长时间?
从上述手工发布宝贝的步骤,可以看出,在千牛卖家中心手工发布宝贝大概需要20-40分钟,那么,如果使用大淘营淘宝宝贝复制软件来一键复制宝贝需要多长时间呢
|
存储 运维 负载均衡
如何保障“双11”期间亿万买家和卖家愉快地聊天
在刚刚过去的 2020 双 11 购物节,Tablestore 第一次全面支持集团 IM(钉钉、手淘&天猫&千牛客服聊天、饿了么等)并平稳度过,保障亿万买家和卖家之间更为顺畅的交流。本文将介绍钉钉 IM 存储架构、表格存储 Tablestore 为了满足迁移在稳定性、功能、性能上做的一系列工作。
5014 0
如何保障“双11”期间亿万买家和卖家愉快地聊天
通过模板消息和权益,估吗支付宝小程序把老用户回访率做到32% | C位小程序访谈
你将通过估吗支付宝小程序的案例了解到:(1)低频小程序在冷启动期如何做推广增加曝光量(2)如何在支付宝利用社交链分享玩法拉新(3)如何通过模板消息做留存和促活每门生意都有天然的痛点,而数码产品回收商“估吗回收”需要解决的问题,就是低频和线上回收的长周期给用户带来的不安全感。
4399 0
通过模板消息和权益,估吗支付宝小程序把老用户回访率做到32% | C位小程序访谈

热门文章

最新文章