leetcode 550 游戏玩法分析IV

发布时间 2023-04-24 18:03:26作者: Carl_ZhangJH

游戏玩法分析

 

select round(avg(a.event_date is not null), 2) as fraction
from 
    (select player_id, min(event_date) as event_date
    from activity
    group by player_id) as p 
left join activity as a 
on p.player_id=a.player_id
and a.event_date = date_add(p.event_date, interval 1 day)

 

 

我自己的写法

 

select round(sum(if(p.player_id is not null, 1, 0)) / count(distinct a.player_id), 2) as fraction from Activity a
left join (
    select player_id, min(event_date) as event_date from Activity
    group by player_id
) as p
on a.player_id = p.player_id 
    and a.event_date = date_add(p.event_date, interval 1 day)