인프런 커뮤니티 질문&답변

jenna님의 프로필 이미지

작성한 질문수

BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)

3-13. 리텐션 과제 : 꼭 풀어보시고 제출해주세요

리텐션 연습 문제

해결된 질문

24.10.16 21:54 작성

·

37

0

리텐션 연습 문제 푸는 중에 어려운 점이 있어 질문 남깁니다!

  • click_payment 이벤트 기준으로 cohort 리텐션 분석 쿼리 올바르게 작성했을까요? 유저수의 합계가 0주차일때 안 맞는 거 같습니다...

  • 코호트 분석 시각화 했을 때 저렇게 비어 보이는 경우에는 어떻게 해석하면 좋을까?

    스크린샷 2024-10-16 214834.png

     

WITH base AS (
  SELECT
    DISTINCT
      user_id,
      event_name,
      TIMESTAMP_MICROS(event_timestamp) AS event_datetime,
      DATE(TIMESTAMP_MICROS(event_timestamp)) AS event_date,
      user_pseudo_id
  FROM `advanced.app_logs`
  WHERE 
    event_date > '2022-08-01'
    AND 
    event_name = 'click_payment'
)
,first_week_data AS (
  SELECT
  DISTINCT 
    user_pseudo_id,
    DATE_TRUNC(MIN(event_date) OVER(PARTITION BY user_pseudo_id),WEEK(MONDAY)) AS first_week,
    DATE_TRUNC(event_date,WEEK(MONDAY)) AS event_week
  FROM base
)
,weeks_after_first_week_data AS (
  SELECT
    *,
    DATE_DIFF(event_week,first_week,WEEK) AS weeks_after_first_week
  FROM first_week_data
)
,active_user_count AS (
  SELECT
  first_week,
  weeks_after_first_week,
  COUNT(DISTINCT user_pseudo_id) AS active_users
  FROM weeks_after_first_week_data 
  GROUP BY ALL
)
,cohort_user_count AS (
SELECT 
 *,
 FIRST_VALUE(active_users) OVER(PARTITION BY first_week ORDER BY weeks_after_first_week) AS cohort_users
FROM active_user_count
)
SELECT 
 *,
 ROUND(SAFE_DIVIDE(active_users,cohort_users),2) AS rentention_rate
FROM cohort_user_count

답변 1

0

카일스쿨님의 프로필 이미지
카일스쿨
지식공유자

2024. 10. 16. 22:39

안녕하세요. 리텐션 문제 풀고 계시시네요!

 

쿼리를 보니까 잘 작성하신 것 같은데 왜 안맞다고 생각하시나요?

 

지금 시각화를 보면 5의 생각이 흰색으로 나오네요. 시각화를 할 때 작은 값이 흰색 ~ 큰 값일수록 초록색이나 빨간색으로 설정하는게 더 좋을 것 같네요.

 

비어있는 경우엔 그 시점에 사용한 유저가 없는거지요. 다만 지금 주차별로 했을 때 숫자가 너무 작아서 이럴 때는 월별로 해야하나?라는 생각을 할 수도 있지요. 월별로도 해보고 어떻게 나오는지 파악하는 것도 방법입니다.

jenna님의 프로필 이미지

작성한 질문수

질문하기