https://leetcode.com/problems/game-play-analysis-i/description/
플레이어 아이디별로 가장 처음 로그인한 날짜 추출하기.
(다양한 방법이 있지만 윈도우 함수를 활용해서 풀어보자.)
ROW_BUMBER 윈도우 함수를 활용하여 플레이어아이디별로 이벤트데이트를 기준으로 순서를 매긴다
RNUM이 1인 데이터만 추출하면 플레이어아이디의 첫로그인 날짜를 추출할 수 있다. SELECT절에 연산한 윈도우 함수를 WHERE 절에서 바로 사용할 수 없으므로 WITH문으로 만들어준다. 그리고 RNUM =1 이라는 WHERE 조건절을 작성한다
WITH CTE AS(
SELECT player_id,
event_date,
ROW_NUMBER() OVER(PARTITION BY player_id ORDER BY event_date) AS first_logins
FROM Activity
)
SELECT player_id, event_date AS first_login
FROM CTE
WHERE first_logins = 1