문제 링크
https://leetcode.com/problems/game-play-analysis-iv/
문제
처음 로그인한 날로부터 최소 2일 연속 로그인한 플레이어의 비율을 구하시오. 소수점 2자리까지 반올림하여 표시하시오.
- Keyword : 날짜 함수, GROUP BY
풀이
다른 날짜는 생각하지 않고 플레이어별 처음 로그인 날짜를 기준으로 한다. 3일 이상 연속은 생각할 필요 없이 2일 연속만 찾으면 된다.
- 플레이어별 (로그인 날짜 - 1)한 날짜가 최초 로그인 날짜인지를 확인하면 된다.
- 전체 플레이어를 COUNT할 때 player_id의 중복을 고려해야 한다.
SELECT ROUND(COUNT(*)/(SELECT COUNT(DISTINCT player_id) FROM Activity),2) AS fraction
FROM Activity
WHERE (player_id, ADDDATE(event_date,-1))
IN (SELECT player_id, MIN(event_date) FROM Activity GROUP BY player_id);