본문 바로가기

[LeetCode] 511. Game Play Analysis 1

by qwee0328 2025. 2. 27.

📝 511. Game Play Analysis 1

🔹 게임 플레이 분석 1

각 플레이어의 첫 번째 로그인 날짜를 찾는 솔루션을 작성하세요.
어떤 순서로든 결과 테이블을 반환합니다.

 

📝 문제 설명

LeetCode 511번 Game Play Analysis I 문제는 각 플레이어의 첫 번째 로그인 날짜를 찾는 SQL 쿼리를 작성하는 문제입니다.

즉, Activity 테이블에서 같은 player_id를 가진 여러 개의 기록 중 가장 빠른 event_date를 찾아야 합니다. 이를 위해 집계 함수(Aggregate Function)와 그룹화(Group By)를 활용하면 해결할 수 있습니다.

 

 

📊 테이블 구조

Activity 테이블

Column Name Type
player_id int
device_id int
event_date date
games_payed int

 

 

💡 SQL 문제 해결 방법

이 문제는 GROUP BY와 MIN() 함수를 활용하여 해결할 수 있습니다. player_id별로 그룹화한 후, 각 플레이어의 최초 event_date를 찾으면 됩니다.

 

 

728x90

 

 

🖥️ SQL 풀이

SELECT player_id
     , MIN(event_date) AS first_login
  FROM Activity
 GROUP BY player_id

 

 

🔍 쿼리 분석

  • GROUP BY player_id : 같은 player_id를 가진 데이터를 그룹화하여 각 플레이어별로 분석할 수 있도록 합니다.
  • MIN(event_date) : 그룹화된 데이터에서 가장 빠른 event_date를 찾아 first_login으로 반환합니다.
  • 출력 컬럼 : 각 플레이어의 고유 ID(player_id)와 첫 번째 로그인 날짜(first_login)

 

📌 실행 예제

Activity 테이블

player_id device_id event_date games_played
1 2 2016-03-01 5
1 2 2016-05-02 6
2 3 2017-06-25 1
3 1 2016-03-02 0
3 4 2018-07-03 5

 

쿼리 실행 결과

player_id first_login
1 2016-03-01
2 2017-06-25
3 2016-03-02

 

 

🎯 결론

이 문제를 통해 GROUP BY와 MIN() 함수를 활용하여 특정 그룹 내 최소값을 찾는 방법을 배울 수 있습니다.

실무에서도 사용자의 첫 로그인 날짜, 최초 구매일, 최초 활동 날짜 분석 등 다양한 데이터 분석에서 활용할 수 있습니다.🚀

 

 

더 많은 SQL 문제 풀이를 보고 싶다면 LeetCode SQL 문제 모음을 확인해 보세요! 🚀

728x90
반응형