前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode MySQL 1633. 各赛事的用户注册率

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

作者头像
Michael阿明
发布2021-09-06 11:42:24
5060
发布2021-09-06 11:42:24
举报
文章被收录于专栏:Michael阿明学习之路

文章目录

1. 题目

用户表: Users

代码语言:javascript
复制
+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| user_id     | int     |
| user_name   | varchar |
+-------------+---------+

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

注册表: Register

代码语言:javascript
复制
+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| contest_id  | int     |
| user_id     | int     |
+-------------+---------+

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

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

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

查询结果如下示例所示:

Users 表:

代码语言:javascript
复制
+---------+-----------+
| user_id | user_name |
+---------+-----------+
| 6       | Alice     |
| 2       | Bob       |
| 7       | Alex      |
+---------+-----------+

Register 表:

代码语言:javascript
复制
+------------+---------+
| 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
复制
+------------+------------+
| contest_id | percentage |
+------------+------------+
| 208        | 100.0      |
| 209        | 100.0      |
| 210        | 100.0      |
| 215        | 66.67      |
| 207        | 33.33      |
+------------+------------+
代码语言:javascript
复制
所有用户都注册了 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
复制
# 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. 解题
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档