
요즘 눈이 너무 아파..
건강하게 오래 살기
오늘은 코드 풀기보다 지난 주 강의를 복습하는 시간을 보냈다.
💡 현업에서 WITH 문 을 이용해 단계별로 테이블을 만들어 전환율을 구하는지?
1번 쿼리에서 페이지 방문 로그를 가진 사용자의 아이디와 행동 시간만 조회하는 테이블 생성,
2번 쿼리에서 결제 로그를 가진 사용자의 아이디와 행동 시간만 조회하는 테이블 생성
3번 쿼리에서 해당 테이블들을 조인해주는데,
1번 행동에서 2번 행동으로 전환되는 전환율을 분석하고 싶은 것이니까
이벤트 발생 시간에 대한 조건을 지정해주는 것이 중요 !t2.event_time > t1.event_time (결제가 페이지 방문 보다 나중에 일어났고,) AND t2.event_time <= t1.event_time + interval '1' day (페이지 방문 후 1일 이내로 결제)
주의 1
- 임시 테이블을 생성하고 조인을 사용하는 방법은
이벤트 발생 시간에 대한 조건을 순차적으로 전환된 사용자만 계산하는 상황을 보장해주지만,
유입 경로 기간이 길고 이벤트 수가 수십억 개에 달하는 상황이 된다면
공간, 시간 복잡성을 초래하게 된다.
+) 특히, 위 표와 같이 모든 이벤트를 모든 이벤트와 비교하는 과정에서 공간 복잡성을 유발한다.
주의 2
- 조인을 할 경우 공간 복잡성을 유발하는 것을 해결하기 위해 윈도우 함수를 활용할 수 있다.
Z차트 : 매출을 분석하기 위해 사용
LEAD
이후 N 행의 값을 가져오는 함수. 기본값은 1 (N번 리드하는 것)
LEAD(컬럼1) OVER (PARTITION BY 컬럼2 ORDER BY 컬럼3)
OR
LEAD(컬럼1, 숫자) OVER (PARTITION BY 컬럼2 ORDER BY 컬럼3)
LAG
이전 N 행의 값을 가져오는 함수. 기본값은 1 (N번 지연하는 것)
LAG(컬럼1) OVER (PARTITION BY 컬럼2 ORDER BY 컬럼3)
OR
LAG(컬럼1, 숫자) OVER (PARTITION BY 컬럼2 ORDER BY 컬럼3)
오늘의 한 줄.
다시 집중해서 한 주 더 힘내기 !