MySQL练手 --- 1633. 各赛事的用户注册率

题目链接:1633. 各赛事的用户注册率

思路:

两张表,一张为Users用户表,该表存储着所有用户的 user_iduser_name

另一张表为Register注册表,该表存储着赛事id(contest_id),和已报名的用户id(user_id

题目要求:统计出各赛事的用户注册百分率,保留两位小数。

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

对赛事进行分组,然后分别对各赛事统计表名人数,最后除以总人数。

解题过程:

先求总人数,并给表别名为total_table,统计后的总人数的字段为total

sql 复制代码
SELECT COUNT(user_id) total
FROM users

得到总人数后,对各赛事的人数进行统计

sql 复制代码
SELECT contest_id, COUNT(user_id)
FROM register
GROUP BY contest_id

然后将各赛事的人数除以总人数且用户注册百分率保留两位小数(ROUND((COUNT(user_id) / total) * 100,2)

sql 复制代码
SELECT contest_id, ROUND((COUNT(user_id) / total) * 100,2) percentage 
FROM register r, (SELECT COUNT(user_id) total
FROM users) total_table
GROUP BY contest_id 

最后再加上排序即可(ORDER BY percentage DESC, contest_id

Code

sql 复制代码
SELECT contest_id, ROUND((COUNT(user_id) / total) * 100,2) percentage 
FROM register r, (SELECT COUNT(user_id) total
FROM users) total_table
GROUP BY contest_id 
ORDER BY percentage DESC, contest_id 
相关推荐
Irene19911 小时前
大数据开发语境下,SQL 模式名,映射关系 - - 概念理解
大数据·数据库·sql
顾随1 小时前
(二)kettle--输入与输出
javascript·数据库·kettle
2401_833033621 小时前
如何修复固定定位头部容器中悬浮下拉菜单的错位问题
jvm·数据库·python
SelectDB2 小时前
Doris & SelectDB for AI 实战:从基础 RAG 到知识图谱增强的完整实现
数据库·人工智能·数据分析
z4424753262 小时前
CSS Grid布局如何实现网格项目的自动增长_设置grid-auto-flow- row
jvm·数据库·python
河野笑生2 小时前
MySQL 范式和反范式详解
数据库
m0_740352422 小时前
如何在 SvelteKit 中为动态加载的图片实现响应式悬停覆盖层
jvm·数据库·python
今天又在写代码2 小时前
并发问题解决
java·开发语言·数据库
马优晨2 小时前
oracle 的 Schema
数据库·oracle·oracle的schema·数据库的 schema·oracle的schema数据
gmaajt2 小时前
JavaScript中闭包对垃圾回收器GC标记清除算法的影响
jvm·数据库·python