O2O, ํํ ํฌ์ ๊ฐ์ ๋๋ฉ์ธ์์๋ ์๋น์ค ์ ๋ขฐ๋ ์งํ๊ฐ ์ค์ํฉ๋๋ค. ๋ด ํต์ฅ์์ ๋์ด ์ง์ ๋๊ฐ์ผ ํ๊ฑฐ๋, ๋๊ตฐ๊ฐ ๋ด ์ง ๋ฌธ ์๊น์ง ์ค๊ฑฐ๋, ๋ชจ๋ฅด๋ ์ฌ๋์ ์ฐจ๋ฅผ ํ์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋๋ฉ์ธ์ ๋ฐ๋ผ ์ ๋ขฐ๋๋ฅผ ์๋ฏธํ๋ ์งํ๊ฐ ๋ค๋ฅผ ์ ์์ต๋๋ค. ๋ฆฌํ ์ , CS ๋ฌธ์ ๋ด์ฉ, ์ฃผ์ ํผ๋์์์ ์ดํ๋ฅ .. ๋ฑ
์ฌ๋ฌ ๊ด์ ์ด ์์ง๋ง, ์ค๋์ ์ปค๋จธ์ค ๋๋ฉ์ธ์ ๋ค๋ฃฐ ์์ ์ ๋๋ค. ์ปค๋จธ์ค์์ ์ ๋ขฐ๋๋ผ๋ ๊ฒ์ ์ถฉ์ฑ๋์ ์ฐ๊ด๋๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ปค๋จธ์ค RFM ๋ถ์
์ค๋ ์ค์ต์ ์ปค๋จธ์ค์์ RFM(์ต๊ทผ์ฑ, ๋น๋, ๊ธ์ก) ๋ถ์์ ํตํด ์ฐ๋ฆฌ ์๋น์ค์ ์ถฉ์ฑ ๊ณ ๊ฐ์ ์ฐพ์๋ณผ ๊ฒ์ ๋๋ค.
์ด๋ ๊ฒ ๋ฐ๊ตดํ ๊ณ ๊ฐ์๊ฒ ๋ง์ถค ํธ์ ์๋ฆผ์ ์ ์กํ ์๋ ์๊ณ , ๊ฐ ์์น์ ๊ฐ์ค์น๋ฅผ ๋ถ์ฌํ๋ฉด ๋ฉค๋ฒ์ญ ์ ๋๋ฅผ ๊ตฌ์ถํ ๋ ์ฐธ๊ณ ํ ์๋ ์์ต๋๋ค.
BigQuery์ thelook_ecommerce ๋ฐ์ดํฐ์ ์ ๊ฐ์ ธ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ค์ 3๊ฐ์ง๋ฅผ ๋์ถํ ๊ฒ์ ๋๋ค.
- Recency: ์ผ๋ง๋ ์ต๊ทผ์ ๊ตฌ๋งคํ๋๊ฐ?
- Frequency: ์ผ๋ง๋ ์์ฃผ ๊ตฌ๋งคํ๋๊ฐ?
- Monetary: ์ผ๋ง๋ ๋ง์ ๊ธ์ก์ ์ง๋ถํ๋๊ฐ?
SELECT
user_id,
-- 1. Recency (์ต๊ทผ์ฑ)
DATE_DIFF(CURRENT_DATE(), MAX(DATE(created_at)), DAY) AS recency,
-- 2. Frequency (๋น๋)
COUNT(DISTINCT order_id) AS frequency,
-- 3. Monetary (๊ธ์ก)
ROUND(SUM(sale_price), 2) AS monetary
FROM `bigquery-public-data.thelook_ecommerce.order_items`
WHERE status = 'Complete' -- ๋ฐํ/์ทจ์๋ฅผ ์ ์ธํ ์ ์ ๊ตฌ๋งค ๊ฑด
GROUP BY 1
ORDER BY monetary DESC
LIMIT 10;
์ธ๋ถ ๋ฐ์ดํฐ์ ์ ์ฐธ์กฐํ ๋๋ ๋ฐ๋์ ํ๋ก์ ํธID.๋ฐ์ดํฐ์ .ํ ์ด๋ธ ํ์์ผ๋ก ์ ์ฒด ๊ฒฝ๋ก๋ฅผ ์จ์ฃผ์ด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด Not Found ์๋ฌ๋ฅผ ๋ง์ฃผํ ์ ์์ต๋๋ค.
์ฟผ๋ฆฌ๋ฅผ ์คํ์์ผ๋ณด๋ฉด ๋ค์์ฒ๋ผ ํ์ธํ ์ ์์ต๋๋ค.


์ปค๋จธ์ค ๋๋ฉ์ธ๋ณ ํ์ฉ ๋ฐฉ๋ฒ
์ํํ ์ปค๋จธ์ค(๋ง์ผ์ปฌ๋ฆฌ ๋ฑ): ์ฌ๋ฐฉ๋ฌธ์ด ์ฆ์์ผ ํ๋ฏ๋ก Frequency(๋น๋)์ ๋์ ๊ฐ์ค์น๋ฅผ ๋ฌ์ผํฉ๋๋ค.
๊ณ ๊ฐ ๊ฐ์ /๋ช ํ ์ปค๋จธ์ค: ํ ๋ฒ์ ๊ฒฐ์ ๊ฐ ํฌ๋ฏ๋ก Monetary(๊ธ์ก)์ ๊ฐ์ค์น๋ฅผ ๋ฌ์ผํฉ๋๋ค.
์ด๋ ๊ฒ ๊ณ์ฐ๋ ์ ์๋ฅผ ๋ฐํ์ผ๋ก ๋ฉค๋ฒ์ญ ๋ฑ๊ธ์ ์ค๊ณํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์์ 1% ์ ์ ์ ํ๊ท ๊ฒฐ์ ์ก์ด ์ 100๋ง ์์ด๋ผ๋ฉด VVIP ๊ธฐ์ค์ 100๋ง ์์ผ๋ก ์ค์ ํ๋ ๋ฑ ๊ทผ๊ฑฐ๋ฅผ ๋ง๋ จํ ์ ์์ต๋๋ค.