✅ 코드
WITH T AS (
SELECT player_id
, MIN(event_date) AS first_log
FROM Activity
GROUP BY player_id
)
SELECT ROUND(COUNT(DISTINCT T.player_id) / COUNT(DISTINCT A.player_id), 2) AS fraction
FROM Activity AS A
LEFT JOIN T ON A.player_id = T.player_id
AND A.event_date = DATE_ADD(T.first_log, INTERVAL 1 DAY)
WITH문으로 유저별 첫 로그인 일자를 모아둔 테이블을 생성했습니다.
이후 Activity 테이블과 특정 조건을 만족하는 LEFT JOIN을 수행했습니다.
'알고리즘' 카테고리의 다른 글
[SQL]LeetCode Friend Requests II: Who has the Most Friends (0) | 2024.01.21 |
---|---|
[SQL]LeetCode Managers with at least 5 direct reports (0) | 2024.01.19 |
[SQL]LeetCode Trips and Users (0) | 2024.01.18 |
[SQL]프로그래머스 Lv.4 자동차 대여 기록별 대여 금액 구하기 (0) | 2024.01.16 |
[SQL]프로그래머스 Lv.4 오프라인/온라인 판매 데이터 통합하기 (0) | 2024.01.16 |
✅ 코드
WITH T AS (
SELECT player_id
, MIN(event_date) AS first_log
FROM Activity
GROUP BY player_id
)
SELECT ROUND(COUNT(DISTINCT T.player_id) / COUNT(DISTINCT A.player_id), 2) AS fraction
FROM Activity AS A
LEFT JOIN T ON A.player_id = T.player_id
AND A.event_date = DATE_ADD(T.first_log, INTERVAL 1 DAY)
WITH문으로 유저별 첫 로그인 일자를 모아둔 테이블을 생성했습니다.
이후 Activity 테이블과 특정 조건을 만족하는 LEFT JOIN을 수행했습니다.
'알고리즘' 카테고리의 다른 글
[SQL]LeetCode Friend Requests II: Who has the Most Friends (0) | 2024.01.21 |
---|---|
[SQL]LeetCode Managers with at least 5 direct reports (0) | 2024.01.19 |
[SQL]LeetCode Trips and Users (0) | 2024.01.18 |
[SQL]프로그래머스 Lv.4 자동차 대여 기록별 대여 금액 구하기 (0) | 2024.01.16 |
[SQL]프로그래머스 Lv.4 오프라인/온라인 판매 데이터 통합하기 (0) | 2024.01.16 |