思路:先求出每对玩家的首次登录id和日期,将它作为临时表,与Activity关联,跟原表的日期做比较,相差一天的标为1。再将符合条件的相加,除以玩家总数。
步骤:
1、求出玩家首次登录的id和日期,作为临时表。
select player_id,min(event_date) as fisrt_date
from Activity
group by player_id
2、将Activity与临时表关联。
select *
from Activity a,
(select player_id,min(event_date) as fisrt_date
from Activity
group by player_id) b
where a.player_id=b.player_id
3、使用datediff函数计算玩家每次登陆和首次登陆的日期差,使用count+distinct函数获取所有玩家数。
select datediff(