본문 바로가기
DATABASE

Q. 활동고객이 많이 구매하는 제품의 계열 조회하기

by nyang2 2023. 11. 22.

전 게시글

활동고객과 비활동고객 파악하기 4번 내용에 이어서 !

필요 데이터 :

제품의 계열 ➜ products 테이블의 productLine

구매자 ➜ orders 테이블의 customerNumber

 

 

조회방법

 

1. 활동고객과 비활동고객으로 분류했던 내용을 테이블화 해주기 !

해석
활동, 비활동 고객으로 분류한 내용을 가져온 후, customerNumber 과 C_type 컬럼만 조회한다.

classicmodels 안에 테이블 생성. 테이블 명은 c_list002

 

 

2. 필요한 데이터 가져오기

해석
필요한 데이터를 가져오기 위해 products 테이블과 orders 테이블을 join 해주어야 한다.
이 때, products 테이블과 orders 테이블의 접점이 없기 때문에 둘과의 접점이 있는 orderdetails 테이블을 함께 join 해준다.

그리고 productLine 과 customerNumber 컬럼만 조회한다.

 

 

3. productLine 별 구매자 수 조회하기

해석
(2) 번의 내용에서 제품의 계열로 그룹화를 해주기 위해 group by 를 사용한다.
구매자 수를 조회하기 위해 count() 집계함수를 사용하고 혹시 모를 중복을 대비하여 중복제거 (distinct) 를 해준다.
이때 구매자 수는 C_CTN 이라는 컬럼명을 설정한다.

 

 

4. C_type 과 productLine 별로 구매자수 조회하기

해석
C_type 을 그룹화해주기 위해 우선 데이터를 가져와야한다.
(1) 내용에서 생성했던 테이블 C_list002 를 join 해준다.

그리고 C_type 과 productLine 별로 group by 를 이용하여 그룹화를 해준다.

 

 

5. 활동고객이 가장 많이 구매한 ProductLine 조회하기

해석
활동고객의 데이터만 조회하기 위해 (4) 번의 내용을 서브쿼리로 이용하여 가져온다.
그리고 where 절을 이용하여 C_type 이 Churn 인 고객 즉, 활동고객의 데이터만 조회한다.

가장 많이 구매한 ProductLine 을 조회하기 위해서는
제품 별 구매한 활동고객의 수 -> C_CTN 으로 순위를 매겨줘야 한다.
row_number() 함수를 이용하여 순위를 매겨주고 내림차순으로 정렬하기 위해 desc 를 사용한다.

조회결과 : 
활동고객이 가장 많이 조회한 제품계열은 Classic Cars 이다.