📖 문제
첫 로그인 후, 다음 날도 로그인 한 유저 비율 구하기
1. 모든 유저 수 구하기
2. 첫 로그인 후 다음 날도 로그인한 유저 수 구하기
🔗Link : https://leetcode.com/problems/game-play-analysis-iv/description/
👀 What I Learned
처음에는 첫 로그인 날짜를 구한 후, 첫 로그인 기준 다음 날짜를 구하려고 했다. 초점을 '다음 날'에 맞추다보니
생각한대로 구현이 잘 안됐다. 결국 솔루션을 참고해서 풀었는데 대부분의 솔루션이
`(각 event_date에서 하루를 뺀 날짜 = 첫 로그인 날짜)` 이런 로직이 많았다.
문제에서 이야기하는 그대로 코드를 짜지 말고, 다른 방식으로 바라보아야 풀리는 문제가 많은 것 같다.
그런 시각을 가지려면 많이 풀어보고 다른 사람들 코드도 많이 보는 수 밖에 없는 것 같다 !
📖 풀이과정
SELECT ROUND(SUM(consecutive) / COUNT(DISTINCT(player_id)),2) as fraction
FROM(
SELECT player_id
, DATEDIFF(event_date, min(event_date) OVER(PARTITION BY player_id)) = 1 as consecutive
FROM Activity
) as t
'데이터 공부 > SQL' 카테고리의 다른 글
[프로그래머스] 조건에 맞는 사용자 정보 조회하기 CONCAT_WS (0) | 2024.10.14 |
---|---|
[LeetCode] 1204.Last Person to Fit in the Bus (From 절 Subquery, 누적합) (0) | 2024.08.22 |
[LeetCode] 1174. Immediate Food Delivery II (Where절 Subquery, 집계함수) (0) | 2024.08.12 |
[LeetCode] 1280. Students and Examinations (CROSS JOIN, LEFT JOIN) (0) | 2024.08.07 |
[MYSQL] LEAG, LAG (0) | 2023.01.12 |