리텐션

SQL로 비즈니스 데이터 분석하기

Michel Semaan

Data Scientist

MAU의 함정

  • 활동 사용자 근속 기간별 분해가 안 됨
  • 서로 다른 활동 패턴을 구분하지 못함
    • 사례 1: 매달 100명이 가입, 한 달만 활동
    • 사례 2: 첫 달에만 100명 가입, 이후 가입 없음. 이 100명은 매달 활동
    • 두 사례 모두 MAU는 100!
SQL로 비즈니스 데이터 분석하기

MAU - 구성

구성

  • 이번 달 신규 사용자
  • 유지: 지난달 활동했고 이번 달도 활동한 사용자
  • 재활성: 지난달 비활성이었지만 이번 달 복귀한 사용자
SQL로 비즈니스 데이터 분석하기

리텐션율 - 개요

  • 리텐션율: 지난달 활동한 사용자가 이번 달에도 활동했는지의 비율
  • 공식: $\frac{Uc}{Up}$, 여기서 $Uc$는 현재월과 전월 모두 활동한 고유 사용자 수, $Up$는 전월 활동한 고유 사용자 수
  • 예시: $\frac{80}{100} = 0.8 = 80\%$
SQL로 비즈니스 데이터 분석하기

리텐션율 - 쿼리

WITH user_activity AS (
  SELECT DISTINCT
    DATE_TRUNC('month', order_date) :: DATE AS delivr_month,
    user_id
  FROM orders)

SELECT previous.delivr_month, ROUND( COUNT(DISTINCT current.user_id) :: NUMERIC / GREATEST(COUNT(DISTINCT previous.user_id), 1), 2) AS retention
FROM user_activity AS previous LEFT JOIN user_activity AS current ON previous.user_id = current.user_id AND previous.delivr_month = (current.delivr_month - INTERVAL '1 month') GROUP BY previous.delivr_month ORDER BY previous.delivr_month ASC LIMIT 3;
SQL로 비즈니스 데이터 분석하기

리텐션율 - 결과

delivr_month  retention
------------  ---------
2018-06-01    0.70
2018-07-01    0.70
2018-08-01    0.76
SQL로 비즈니스 데이터 분석하기

리텐션

SQL로 비즈니스 데이터 분석하기

Preparing Video For Download...