μλ νμΈμ~!
μ΄λ²μλ μ μ μΈ λͺ μ νμμ΄ ν¨κ» νλ λ°μ΄ν° λΆμ νλ‘μ νΈμ μΌλΆλ₯Ό μκ°ν΄λ³΄λ €κ³ ν©λλ€.
β λͺ©μ°¨
1. λ¬Έμ μ μ λ° λΆμ λͺ©ν
2. λΆμ κ³Όμ
3. μ μ
1. λ¬Έμ μ μ λ° λΆμ λͺ©ν
μ ν¬λ μ€ννμ§ μΌλ§λμ§ μμ (5κ°μ) μ¨λΌμΈ νμ₯ν νλ«νΌμ λ§€μΆμ΄ λ€μκ³Ό κ°μ΄ μμ μ μ΄μ§ μμμ νμΈνμμ΅λλ€.
μ΄μ κΈ°μ‘΄ κ³ κ°μ ꡬ맀 νΉμ±μ λΆμνμ¬ κ³ κ°μ νμ νκ³ λ§€μΆμ μμ μ μΌλ‘ λμΌ μ μλ λ§μΌν μ λ΅μ μ μνλ κ²μ΄ λͺ©νμμ΅λλ€.
κ·Έλ°λ° λΆμμ μ§ννλ©΄μ μΆκ°μ μΈ λΆμμ΄ νμν μ ν¬ μ€ν μ΄μ λ¬Έμ μ μ λ°κ²¬νμμ΅λλ€.
νμ¬ μ ν¬ μλΉμ€μ κ²°μ μ νμ¨μ μ κ³ νκ· κ²°μ μ νμ¨μΈ 2.93%μ λͺ» λ―ΈμΉλ μμ€μΈ 2.36%λΌλ κ²μ΄μμ΅λλ€.
λ°λΌμ μ΄λ² ν¬μ€ν μμλ νΌλμ μ μνκ³ κ° λ¨κ³λ³ μ νμ¨μ κ³μ°νλ κ³Όμ μ λν΄μ ν¬μ€ν ν΄λ³΄λ €κ³ ν©λλ€.
2. λΆμ κ³Όμ
1οΈβ£ νΌλ ꡬμ±
νΌλ λΆμμ κ³ κ°λ€μ΄ μ°λ¦¬κ° μ€κ³ν μ μ κ²½ν 루νΈλ₯Ό λ°λΌ μ λμ°©νκ³ μλμ§λ₯΄ νμΈν΄λ³΄κΈ° μν΄ μ΅μ΄ μ μ λΆν° μ΅μ’ λͺ©μ μ§κΉμ§ λ¨κ³λ₯Ό λλμ΄ μ΄ν΄λ³΄λ λΆμ κΈ°λ²μ λλ€. μ ν¬ νλ«νΌμμ κ³ κ°μ΄ μνμ κ²°μ νκΈ°κΉμ§ μ΄λ€ λ¨κ³κ° μλμ§ μ΄ν΄λ³΄κ³ νΌλμ ꡬμ±ν΄λ³΄μμ΅λλ€.
κ³ κ°μ μν κ²°μ κΉμ§μ κ³Όμ μ λ€μκ³Ό κ°μ΄ view -> cart -> purchase 3λ¨κ³μ λλ€.
μ μ μμ΄λ(user_id)μ μ μ μΈμ (user_session)μ΄ κ°μΌλ©΄ νλμ μΈμ μ΄λΌκ³ μ μνμμ΅λλ€.
2οΈβ£ μ νμ¨ κ³μ°
μΈμ μ΄ κ°μΌλ©΄μ μΌμ΄λ μκ°μ΄ view <= cart <= purchaseλ‘ μμ νΌλμ΄ μ νλλλ‘ μ‘°κ±΄μ μ£Όμ΄ μ νμ¨μ κ³μ°νμμ΅λλ€. (λ€μ 쿼리λ MySQL κΈ°μ€μ λλ€)
with pv as (
select user_id
, user_session
, event_time as pv_at
from sql.sales
where event_type="view"
), cart as (
select user_id
, user_session
, event_time as cart_at
from sql.sales
where event_type="cart"
), purch as (
select user_id
, user_session
, event_time as purch_at
from sql.sales
where event_type="purchase")
select COUNT(distinct pv.user_id, pv.user_session) as pv
, COUNT(distinct cart.user_id, cart.user_session) as cart_after_pv
, COUNT(distinct purch.user_id, purch.user_session) as purch_after_cart
, COUNT(distinct cart.user_id, cart.user_session) / COUNT(distinct pv.user_id, pv.user_session) as pv_cart_rate
, COUNT(distinct purch.user_id, purch.user_session) / COUNT(distinct cart.user_id, cart.user_session) as cart_purch_rate
, COUNT(distinct purch.user_id, purch.user_session) / COUNT(distinct pv.user_id, pv.user_session) as pv_purch_rate
from pv
left join cart on pv.user_id=cart.user_id
and pv.user_session=cart.user_session
and pv_at <= cart_at
left join purch on cart.user_id=purch.user_id
and cart.user_session=purch.user_session
and cart_at <= purch_at
*MySQL workbenchμμ μμ μ νλ λͺ λ Ήμ΄κ° λ€ μλ¬Έμλ‘ λ°λλλΌκ΅¬μγ γ
pv | cart | purchase | pv_cart_rate | cart_purchase_rate | pv_purchase_rate |
4281032 | 724984 | 100939 | 16.93% | 13.92% | 2.36% |
view -> cart μ νμ¨μ 16.93%, cart -> purchase μ νμ¨μ 13.92%, view -> purchase μ νμ¨μ 2.36%λ‘ κ³μ°λμμ΅λλ€.