문제 출처: chat gpt 생성
문제
당신은 커머스 플랫폼의 데이터 분석가입니다.
사용자 행동 로그를 통해, "첫 방문 후 첫 구매까지 걸린 일 수" 를 측정하려 합니다.
테이블: user_logs
| user_id | 사용자 ID |
| event_date | 날짜 (DATE 타입) |
| event_type | 행동 유형 ('visit', 'purchase') |
각 사용자별로, 첫 visit 이후 첫 purchase까지 걸린 일 수를 계산하세요.
단, 구매가 없으면 제외합니다.
출력 컬럼
| user_id | 사용자 ID |
| days_to_purchase | 첫 visit 이후 구매까지 걸린 일 수 |
답안
with fst_visit as (
select user_id
, event_date
from (select user_id
, event_date
, rank() over(partition by user_id order by event_date) as rank
from user_logs
where event_type='visit')
where rank =1
)
, fst_pur as (
select user_id
, event_date
from (select user_id
, event_date
, rank() over(partition by user_id order by event_date) as rank
from user_logs
where event_type='purchase')
where rank =1
)
select user_id
, datediff(p.event_date, v.event_date) as days_to_purchase
from fst_visit v
join fst_pur p
on v.user_id=p.user_id and v.event_date<=p.event_date
order by user_id'Base > SQL' 카테고리의 다른 글
| [SQL 코딩 테스트 준비] #11. A/B 테스트 – 전환율 비교 (0) | 2025.07.26 |
|---|---|
| [SQL 코딩 테스트 준비] #10. 재방문 유저의 최초 방문일 찾기 (0) | 2025.07.26 |
| [SQL 코딩 테스트 준비] #8. FrontEnd 개발자 찾기 (1) | 2025.07.26 |
| [SQL 코딩 테스트 준비] #7. 없어진 기록 찾기 (2) | 2025.07.26 |
| [SQL 코딩 테스트 준비] #6. 조건에 맞는 도서와 저자 리스트 출력하기 (3) | 2025.07.26 |



