서비스 성장 분석 방법론 중 하나
전체 유저 = 미결제 유저 + 결제 유저
ARPU(Average Revenue Per User) : 유저당 평균 매출액, 전체 매출/전체 유저
ARPPU(Average Revenue Per Paying User) : 결제 유저당 평균 매출액, 전체 매출/결제 유저
order_purchase_timestamp는 시간데이터입니다. 아래 쿼리를 이용해 데이터셋이 언제부터 언제까지의 데이터인지 확인 할 수 있습니다.
SELECT MAX(order_purchase_timestamp), MIN(order_purchase_timestamp)
FROM olist_orders_dataset
데이터셋에서 고객들이 주별로 어디에 살고 있는지 인구순으로 내림차순한 쿼리입니다.
SELECT customer_state, COUNT(DISTINCT customer_unique_id) AS customers
FROM olist_customers_dataset
GROUP BY customer_state
ORDER BY customers DESC
2017년 매출 TOP3 주를 뽑아봤습니다.
SELECT c.customer_state
, ROUND(SUM(p.payment_value), 2) AS revenue
FROM olist_orders_dataset o
INNER JOIN olist_customers_dataset c ON o.customer_id = c.customer_id
INNER JOIN olist_order_payments_dataset p ON o.order_id = p.order_id
WHERE o.order_purchase_timestamp BETWEEN '2017-01-01 00:00:00' AND '2017-12-31 23:59:59'
GROUP BY c.customer_state
ORDER BY revenue DESC
2017년 5월 1일부터 2017년 11월 19일까지 이 쇼핑몰의 일일 매출액을 구하고 시각화합니다.
DATE()함수는 인수를 연-월-일 형태로 변환합니다.
SELECT DATE(order_purchase_timestamp) dt
, ROUND(SUM(payment_value), 2) revenue_daily
FROM olist_orders_dataset o
INNER JOIN olist_order_payments_dataset p ON o.order_id = p.order_id
WHERE o.order_purchase_timestamp BETWEEN '2017-05-01 00:00:00' AND '2017-11-19 23:59:59'
GROUP BY dt
ORDER BY dt
2017년 5월 1일부터 2017년 11월 19일까지 이 쇼핑몰의 일일 고객수, 고객수 당 평균 매출액을 구하고 시각화합니다.
SELECT DATE(order_purchase_timestamp) AS dt,
ROUND(SUM(p.payment_value)) AS sales,
COUNT(DISTINCT customer_id) AS PU,
ROUND(SUM(p.payment_value)/COUNT(DISTINCT customer_id)) AS ARPPU
FROM olist_orders_dataset o
INNER JOIN olist_order_payments_dataset p ON o.order_id = p.order_id
WHERE o.order_purchase_timestamp BETWEEN '2017-05-01 00:00:00' AND '2017-11-20 00:00:00'
GROUP BY dt
2017년 5월 1일부터 2017년 11월 19일까지 매출 TOP3 지역인 'SP', 'RJ', 'MG' 주의 각각 일일 매출액과 일일 점유율을 구하고 시각화합니다.
SELECT DATE(order_purchase_timestamp) AS dt,
ROUND(SUM(CASE WHEN c.customer_state = 'SP' THEN p.payment_value END)) AS SP_day_r,
ROUND(SUM(CASE WHEN c.customer_state = 'RJ' THEN p.payment_value END)) AS RJ_day_r,
ROUND(SUM(CASE WHEN c.customer_state = 'MG' THEN p.payment_value END)) AS MG_day_r,
ROUND(SUM(CASE WHEN c.customer_state = 'SP' THEN p.payment_value END)/SUM(p.payment_value)*100) AS SP_day_r_pct,
ROUND(SUM(CASE WHEN c.customer_state = 'RJ' THEN p.payment_value END)/SUM(p.payment_value)*100) AS RJ_day_r_pct,
ROUND(SUM(CASE WHEN c.customer_state = 'MG' THEN p.payment_value END)/SUM(p.payment_value)*100) AS MG_day_r_pct
FROM olist_orders_dataset o
INNER JOIN olist_order_payments_dataset p ON o.order_id = p.order_id
INNER JOIN olist_customers_dataset c ON o.customer_id = c.customer_id
WHERE o.order_purchase_timestamp BETWEEN '2017-05-01 00:00:00' AND '2017-11-20 00:00:00'
GROUP BY dt
ORDER BY dt
ARPPU, ARPU, ARPA (0) | 2022.11.06 |
---|---|
고객 유지 전략 (0) | 2022.11.06 |
마진율 (0) | 2022.11.06 |
Churn rate (2) | 2022.11.06 |
RFM (0) | 2022.07.26 |
댓글 영역