리트코드 [Game Play Analysis I]

윤태영·2024년 9월 2일
0

문제

https://leetcode.com/problems/game-play-analysis-i/description/

플레이어 아이디별로 가장 처음 로그인한 날짜 추출하기.
(다양한 방법이 있지만 윈도우 함수를 활용해서 풀어보자.)

Table : Activity

Example1

문제풀이

  1. ROW_BUMBER 윈도우 함수를 활용하여 플레이어아이디별로 이벤트데이트를 기준으로 순서를 매긴다

  2. 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
profile
ice blue

0개의 댓글