题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/game-play-analysis-iv
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
本人思路:
– 1、理解题意,要求首次登陆的第二天再次登录,那么首先要找到每个用户首次登陆的时间,即下面的temp表
– 2、再利用表activity左连接leftjoin表temp,使用条件player_id连接
– 3、注意用日期筛选时放在where内。而不能直接放在连接条件on内
– 4、通过1,2,3可以找到分子,而分母是去重的玩家数直接distinct即可
select round(count(distinct a1.player_id)/(select count(distinct player_id)from activity ),2) as fraction
from activity as a1
left join
(
select a2.player_id, min(a2.event_date)as min_date
from activity as a2
group by a2.player_id
)temp
on a1.player_id = temp.player_id
where datediff(a1.event_date,temp.min_date)=1