SQL로 주단위 cohort 의 참여 비율 구하기
yearweek 함수를 쓰면 주단위로 그룹짓는게 가능하다.
/* 행동A(예: 가입)를 한 시간 기준으로 주단위 cohort 대비 : 행동B(예: 구매) 건수 통계 */
SELECT a.wk, a.cnt a_cnt, b.cnt b_cnt, b.cnt/a.cnt rate
FROM
/* 행동A(예: 가입)를 한 시간 기준으로 주단위 건수 */
(
SELECT
YEARWEEK(u.regdttm) wk
,COUNT(*) cnt
FROM action_a u
GROUP BY YEARWEEK(u.regdttm)
) a
/* 행동A(예: 가입)를 한 사용자들이 행동B를 한 건수 */
INNER JOIN (
SELECT YEARWEEK(u.regdttm) wk, COUNT(*) cnt
FROM action_b r
INNER JOIN action_a u ON (u.userkey = r.userkey)
GROUP BY YEARWEEK(u.regdttm)
) b ON (a.wk = b.wk)
;