1-1. 데이터 추출 쿼리
WITH filter_table AS (
SELECT user_id, user_session, DATE_FORMAT(event_time, '%Y-%m-%d') AS date_e, COUNT(*) AS count
FROM 2019dec
GROUP BY user_id, user_session, DATE_FORMAT(event_time, '%Y-%m-%d')
HAVING COUNT(*) > 10 AND COUNT(*) < 50
)
SELECT *
FROM filter_table
ORDER BY count
LIMIT 10;
1-2. 총 3개 유저를 뽑음
user_id = '593496422'
AND user_session = 'bf733c87-8564-49f3-a231-a97f61541780'
AND DATE_FORMAT(event_time, '%Y-%m-%d') = '2019-12-27'
추출값
해석
593496422
만 추가 확인 진행하였을 때 69행에서 여러 session이 섞여있었고, 구매로 이어진 전적이 없음cart > view > remove
, cart > remove
혹은 view
만 존재 user_id = '105697630'
AND user_session = '9ba02ca6-1cd6-4b6b-8e92-0f05ba82fcdc'
AND DATE_FORMAT(event_time, '%Y-%m-%d') = '2019-12-06'
추출값
해석
view
remove_from_cart
cart
만 존재view > cart > view > purchas
를 확인해보면view > cart > remove_from_cart
view > cart > purchase
cart > purchase
: 바로 카트에서 시작하는 활동이 다수 존재view > purchase
행동 존재remove_from_cart
를 1-2분 내 중복되는 경우 실수로 누르는 것으로 추정됨purchase
하는 케이스도 존재 user_id = '592889347'
AND user_session = '59fda76f-f3c7-4945-9f02-8e0fa273ef99'
해석
패턴
-view
-view > cart > remove_from_cart
-remove_from_cart > view > cart > remove_from_cart
remove_from_cart로 시작하는 데이터 존재
-view > cart > remove_from_cart > cart> purchase
-cart > remove_from_cart > cart > purchase
카트로 시작하는 경우 존재
-cart > remove_from_cart > view > purchase
로 보고 바로 구매로 가는 경우도 발생
패턴 정리
view
view > cart > remove_from_cart
view > cart > purchase
view > cart > remove_from_cart > cart > purchase
view > purchase
** cart > purchase
** cart > view > remove
cart > remove_from_cart
cart > remove_from_cart > cart > purchase
cart > remove_from_cart > view > purchase
** remove_from_cart > view > cart > remove_from_cart
remove_from_cart
를 1-2분 내 중복되는 경우 실수로 누르는 것으로 추정됨논의 거리
기존에는 DISTINCT user_id, user_session으로 진행했으나, 데이터를 확인한 결과
user_id와 user_session은 1:N으로 구성되어 있어, user_id와 product_id로 진행해야 구매 경로를 확인할 수 있을 것이라 판단
동일한 시간, 동일한 제품, 동일한 세션인 경우 실수로 판단하여 중복 제거 진행 (본인은 중복제거 시 개수가 감소하는데, 다른 팀원은 그렇지 않아 해당 부분 확인 필요)
최종 목적이 purchase이니까 purchase를 어떤 경로로 왔는지를 중점적으로 파악해야 할지 고민. 이 경로 안에서 remove_from_cart로 이탈하는 경우를 확인하는 가설을 설정해야 할까?
아래와 같이 user_id와 product_id가 같은 상황에서 purchase가 없는 경우 모두 한 경로로 취급해야 할까?