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)
;