Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- pandas
- 린분석
- 데이터리안
- dense_rank
- 서브쿼리
- funnel
- Datarian
- 윈도우함수
- 누적합
- leetcode
- python
- MYSQL
- 프로그래머스
- 그로스해킹
- rank
- LEFTJOIN
- row_number
- 취준
- 신입 데이터분석가
- advent of sql
- SolveSQL
- 윈도우 함수
- 순위함수
- 데이터분석
- 리텐션
- 퍼널분석
- Retention
- regexp
- 독서
- SQL
Archives
- Today
- Total
데이터 분석
[플레이그라운드] 코호트 리텐션 계산 본문
문제 상황
특정 기간 후 이탈률이 높아지는 지점을 식별하여 집중적인 고객 관리 전략을 수립하기 위한 비즈니스 시나리오를 가정하고, 유저들의 첫번째 주문일을 기준으로 코호트를 나눈 후 유저의 첫 번째 주문 이후의 주문 리텐션을 계산해 보았다.
단, 한 유저가 같은 날 여러 건의 주문을 했을 경우 하루에 한 건으로 집계한다.
Solution
WITH step1 AS (
SELECT r.*
, c.first_order_date
, DATEDIFF(r.order_date, c.first_order_date) AS day_diff
FROM records r
JOIN customer_stats c ON r.customer_id = c.customer_id
)
SELECT first_order_date AS cohort_date
, day_diff
, COUNT(DISTINCT customer_id) AS user_cnt
FROM step1
GROUP BY first_order_date, day_diff
- step1 cte :
주문 데이터와 고객 데이터를 조인하여 각 고객의 주문일과 첫 주문일 차이(일수)를 계산 - 최종 select :
cohort_date와 day_diff를 기준으로 고유 고객 수를 집계


💡위 결과를 바탕으로 낮은 리텐션을 보이는 코호트에 대해 원인을 분석하고 개선점을 도출하여 리텐션을 개선하는 전략을 세울 수 있을 것이다.
'SQL > solvesql' 카테고리의 다른 글
| [플레이그라운드] 1분기 동안의 고객별 인기 상품 Top3 (0) | 2025.03.05 |
|---|---|
| [플레이그라운드] 카테고리별 매출액, 총매출액, 비율 집계 (0) | 2025.03.03 |
| solvesql | 레스토랑의 요일별 VIP (1) | 2025.01.24 |
| solvesql | 다음날도 서울숲의 미세먼지 농도는 나쁨 😵💫 (2) | 2025.01.24 |
| [Day 24] solvesql | Advent of SQL 2024 | 이상 사용자 탐지💡 (2) | 2024.12.25 |