채널 별 월 매출액 테이블 만들기
1. 유일한 사용자 수 세기
SELECT LEFT(ts, 7 ) "month",
usc.channel,
COUNT(DISTINCT userid) uniqueUsers
FROM raw_data.user_session_channel usc
JOIN raw_data.session_timestamp t On t.sessionid= usc.sessionid
GROUP BY 1, 2
ORDER BY 1, 2
2. 매출정보가 필요하다 ( session_transaction 붙이기 )
- session_transaction은 모든 sessionid가 존재하지 않는다
- LEFT JOIN 사용
- FROM에 사용하는 테이블은 user_session_channel 혹은 session_timestamp가 되어야 함
SELECT LEFT(ts, 7) "month",
usc.channel,
COUNT(DIsTINCT userid ) uniqueUsers
FROM raw_data.user_session_channel usc
JOIN raw_data.session_timestamp t On t.sessionid = usc.sessionid
LEFt JOIN raw_data.session_transaction st ON st.sessionid = usc.sessionid
GROUP BY 1, 2
ORDER BY 1, 2
3. paidUsers 를 추가
SELECT LEFT(ts, 7) "month",
usc.channel,
COUNT(DISTINCT userid ) uniqueUsers,
COUNT(DISTINCT CASE WHEN amount > 0 THEN usc.userid END ) paidUsers,
FROM raw_data.user_session_channel usc
JOIN raw_data.session_timestamp t On t.sessionid = usc.sessionid
LEFt JOIN raw_data.session_transaction st ON st.sessionid = usc.sessionid
GROUP BY 1, 2
ORDER BY 1, 2