인프런 커뮤니티 질문&답변

bluebamus님의 프로필 이미지
bluebamus

작성한 질문수

다양한 사례로 익히는 SQL 데이터 분석

채널별 고유/주문 사용자 건수와 매출 금액 및 비율 SQL로 구하기 - 02

컬럼의 뜻에 대해 질문 드립니다.

작성

·

277

0

채널별 고유/주문 사용자 건수와 매출 금액 및 비율 SQL로 구하기 2 를 학습하면서

/************************************
채널별 고유 사용자 건수와 매출금액 및 비율, 주문 사용자 건수와 주문 매출 금액 및 비율
채널별로 고유 사용자 건수와 매출 금액을 구하고 고유 사용자 건수 대비 매출 금액 비율을 추출. 
또한 고유 사용자 중에서 주문을 수행한 사용자 건수를 추출 후 주문 사용자 건수 대비 매출 금액 비율을 추출
*************************************/
with temp_01 as (
	select a.sess_id, a.user_id, a.channel_grouping
		, b.order_id, b.order_time, c.product_id, c.prod_revenue 
	from ga_sess a
		left join orders b on a.sess_id = b.sess_id
		left join order_items c on b.order_id = c.order_id
	where a.visit_stime >= (:current_date - interval '30 days') and a.visit_stime < :current_date
)
select channel_grouping
	, sum(prod_revenue) as ch_amt -- 채널별 매출
	--, count(distinct sess_id) as ch_sess_cnt -- 채널별 고유 세션 수
	, count(distinct user_id) as ch_user_cnt -- 채널별 고유 사용자 수
	--, count(distinct case when order_id is not null then sess_id end) as ch_ord_sess_cnt -- 채널별 주문 고유 세션수
	, count(distinct case when order_id is not null then user_id end) as ch_ord_user_cnt -- 채널별 주문 고유 사용자수
	--, sum(prod_revenue)/count(distinct sess_id) as ch_amt_per_sess -- 접속 세션별 주문 매출 금액
	, sum(prod_revenue)/count(distinct user_id) as ch_amt_per_user -- 접속 고유 사용자별 주문 매출 금액
	-- 주문 세션별 매출 금액
	--, sum(prod_revenue)/count(distinct case when order_id is not null then sess_id end) as ch_ord_amt_per_sess
	-- 주문 고유 사용자별 매출 금액
	, sum(prod_revenue)/count(distinct case when order_id is not null then user_id end) as ch_ord_amt_per_user
from temp_01
group by channel_grouping order by ch_user_cnt desc;

위 쿼리의 쿼리 뜻이 잘 이해가 안되어 질문 드립니다.

, sum(prod_revenue)/count(distinct user_id) as ch_amt_per_user -- 접속 고유 사용자별 주문 매출 금액
, sum(prod_revenue)/count(distinct case when order_id is not null then user_id end) as ch_ord_amt_per_user

이 두 항목은 각각 접속 고유 사용자별 주문 매출 금액,

주문 고유 사용자별 매출 금액이라 명칭 되어 있는데, 어떤 의미를 가지고 있는 것인지 잘 이해가 되지 않아 질문 드립니다.

  • 접속 고유 사용자별 주문 매출 금액 : 사용자 대비 30일이내 매출 금액

  • 주문 고유 사용자별 매출 금액 : 주문 대비 30일 이내 매출 금액

이렇게 이해를 하면 될런지요?

답변 1

0

권 철민님의 프로필 이미지
권 철민
지식공유자

한명의 사용자는 채널별로 여러번 접속을 할 수 있습니다. 즉 특정 사용자는 과거 부터 현재까지 여러개의 접속 세션을 가지고 있는 상태 입니다.

예를 들어 사용자 A는 아래와 같이 여러개의 접속 세션을 가질 수 있습니다. 즉 ga_sess 테이블에서 여러개의 접속 세션은 하나의 사용자에 할당됩니다.

SESSION_ID, USER_ID

1 , A -> 어제 저녁 접속

2 , B -> 오늘 아침 접속

3 , A -> 오늘 점심 접속

4 , B -> 오늘 점심 접속

5 , A -> 가장 최근 접속

위의 레코드는 총 5개이지만 고유 접속자는 A, B 두명입니다. 고유 접속자 건수란 의미는 중복을 제외한 접속 사용자 건수를 의미 합니다. 따라서 접속 고유 사용자별 주문 매출 금액은 접속 세션중에서 주문을 한 경우의 총 주문 매출을 접속 고유 사용자 건수로 나눈 금액입니다.

주문 역시 마찬가지로 한명의 사용자는 여러번 주문을 할 수 있습니다. 그리고 주문 고유 사용자는 중복을 제외한 주문 사용자 건수를 의미합니다. 따라서 주문 고유 사용자별 주문 매출 금액은 총 주문 매출을 주문 고유 사용자로 나눈 금액 입니다.

감사합니다.

bluebamus님의 프로필 이미지
bluebamus

작성한 질문수

질문하기