Kimuksung
Kimuksung 안녕하세요. 분산처리에 관심이 많은 생각하는 주니어 Data Enginner입니다.

leet code sql 550


550. Game Play Analysis IV

문제

  • 첫 로그인 후 다음 날 들어올 확률
문제 접근

  • 최초 접근 → Min 함수를 이용
  • date_add 함수를 활용하여 하루 이후 비교
  • Mysql에서는 Interval로만 datetime 변경이 되지 않는다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 첫 로그인 이후, 다시 접속할 확률
with first_login as (
select 
    player_id,
    min(event_date) event_date
from Activity
group by 1
)
select
    convert(sum(Activity.player_id is not null)/count(first_login.player_id), decimal(3,2)) as fraction
from first_login 
left join Activity
on first_login.player_id = Activity.player_id
    and date_add(first_login.event_date, interval 1 day) = Activity.event_date