赛题 2:游戏游玩情况
编写一个 SQL 查询,报告在首次游玩后的一周内至少再有一次游玩的玩家的比例,也就是注册首周内至少有两次登录的玩家占总玩家的比例,四舍五入到小数点后两位
解题思路
- 获取玩家第一次和第二次登录时间
- 比较第二次与第一次是时间是否为7天
- 统计7天内登录的玩家占比
sql语句
select round(count(1) / (select count(distinct player_id) from Activity) ,2) as fraction
from (
SELECT t.player_id,min(event_date) s1,
(SELECT event_date FROM Activity WHERE player_id = t.player_id ORDER BY event_date LIMIT 1 OFFSET 1) as s2
FROM Activity t group by t.player_id
) vv
where datediff(s2 , s1 ) <= 7
增加索引
create index idx_activity_d on Activity(event_date);
执行结果及耗时

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




