首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >LeetCode MySQL 1633. 各赛事的用户注册率

LeetCode MySQL 1633. 各赛事的用户注册率

作者头像
Michael阿明
发布2021-09-06 11:42:24
发布2021-09-06 11:42:24
58000
代码可运行
举报
运行总次数:0
代码可运行

文章目录

1. 题目

用户表: Users

代码语言:javascript
代码运行次数:0
运行
复制
+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| user_id     | int     |
| user_name   | varchar |
+-------------+---------+

user_id 是该表的主键。 该表中的每行包括用户 ID 和用户名。

注册表: Register

代码语言:javascript
代码运行次数:0
运行
复制
+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| contest_id  | int     |
| user_id     | int     |
+-------------+---------+

(contest_id, user_id) 是该表的主键。 该表中的每行包含用户的 ID 和他们注册的赛事。

写一条 SQL 语句,查询各赛事的用户注册百分率,保留两位小数

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

查询结果如下示例所示:

Users 表:

代码语言:javascript
代码运行次数:0
运行
复制
+---------+-----------+
| user_id | user_name |
+---------+-----------+
| 6       | Alice     |
| 2       | Bob       |
| 7       | Alex      |
+---------+-----------+

Register 表:

代码语言:javascript
代码运行次数:0
运行
复制
+------------+---------+
| 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       |
+------------+---------+

结果表:

代码语言:javascript
代码运行次数:0
运行
复制
+------------+------------+
| contest_id | percentage |
+------------+------------+
| 208        | 100.0      |
| 209        | 100.0      |
| 210        | 100.0      |
| 215        | 66.67      |
| 207        | 33.33      |
+------------+------------+
代码语言:javascript
代码运行次数:0
运行
复制
所有用户都注册了 208、209 和 210 赛事,因此这些赛事的注册率为 100% ,
我们按 contest_id 的降序排序加入结果表中。
Alice 和 Alex 注册了 215 赛事,注册率为 ((2/3) * 100) = 66.67%
Bob 注册了 207 赛事,注册率为 ((1/3) * 100) = 33.33%

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/percentage-of-users-attended-a-contest 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

代码语言:javascript
代码运行次数:0
运行
复制
# Write your MySQL query statement below
select contest_id, round(ct/tot*100,2) percentage from
(
    select contest_id, count(*) ct
    from Register r
    group by contest_id
)t1,
(select count(*) tot from Users) t2
order by percentage desc, contest_id asc

959 ms 0 B MySQL


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/08/22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 1. 题目
  • 2. 解题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档