SQL로 월별 챌레이트(해약률·탈퇴율)·계속율을 내는

개요



Chan Rate(해약률·탈퇴율)이란, 모든 유저 중 해지한 유저의 비율을 나타내는 지표입니다. 연속율은 1 - チャーンレート 로 나옵니다.

이번에는 전월부터의 찬율을 보겠습니다. 2019-06일 때는 2019-05시점의 사용자수의 챌레이트를, 2019-05일 때는 2019-04시점의 사용자수의 챌레이트를, 처럼 변동적으로 하는 SQL입니다.

※값은 적당합니다. 첫 번째 데이터는 전월이 없으므로 0입니다.


SQL



SELECT
  this.month
  ,count(distinct last.user_id) / count(distinct this.user_id) churn_rate
  ,1 - count(distinct last.user_id) / count(distinct this.user_id) keizoku_rate
FROM (
  -- 当月のユーザー数
  SELECT
    date_trunc(date(u.created), month) month
    ,u.id user_id
  FROM
    users u
  GROUP BY month
) this LEFT JOIN (
  -- 前月のユーザー数
  SELECT
    date_trunc(date(u.created), month) month
    ,u.id user_id
  FROM
    users u
  GROUP BY month
) last ON this.user_id = last.user_id
and this.month = date_add(last.month, interval 1 month) -- 前月処理
GROUP BY month
ORDER BY month DESC

포인트는 당월을 전월 +1개월로 LEFT JOIN하는 것입니다.and this.month = date_add(last.month, interval 1 month)
일별, 주별, 분기별, 연별에 date_trunc(date(u.created), XXXX )` 를 사용하여 분석해 보는 것도 즐겁네요.

또 과금하고 있는 등 액티브한 유저의 챌레이트를 보는 것도 재미있다고 생각합니다. 그렇다면 GROUP BY month, X.user_id 그리고 사용자 ID를 고유하게하는 것을 잊지 마세요.

좋은 웹페이지 즐겨찾기