홍동이의 성장일기
[LeetCode] 511. Game Play Analysis I 본문
[풀이 1]
SELECT player_id
, MIN(event_date) AS first_login
FROM activity
GROUP BY player_id
[풀이 2] 윈도우 함수 사용
SELECT player_id
, first_login
FROM (
SELECT player_id
, event_date AS first_login
, ROW_NUMBER() OVER (PARTITION BY player_id ORDER BY event_date) AS login_num
FROM activity
) AS log_rank
WHERE login_num = 1
💡 문제 풀이
[풀이 1] player_id 별로 (GROUP BY) event_date의 최소값인 날(MIN)이 첫번째 로그인 날짜입니다.
[풀이 2]
1. player_id별로 (PARTITION BY) event_date의 순위를 구해줍니다. (ORDER BY)
sELECT player_id
, event_date AS first_login
, ROW_NUMBER() OVER (PARTITION BY player_id ORDER BY event_date) AS login_num
FROM activity
2. 위 식을 서브쿼리 안에 넣어준 후, login_num이 1인 (가장 빠른)행의 player_id와 first_login 날짜를 불러와줍니다.
📍본 내용은 데이터리안 'SQL 데이터 분석 캠프 실전반' 을 수강하며 작성한 내용입니다.
728x90
'Tool > SQL 코딩테스트 풀이' 카테고리의 다른 글
[LeetCode] 178. Rank Scores (0) | 2023.08.24 |
---|---|
[LeetCode] 185. Department Top Three Salaries (0) | 2023.08.23 |
[LeetCode] 180. Consecutive Numbers (0) | 2023.08.22 |
[MySQL] RegexOne 정규표현식 Lesson 1 ~5 예제 풀이 및 설명 (0) | 2023.08.21 |
[LeetCode] 1084. Sales Analysis III (0) | 2023.08.18 |
Comments