특정 구매자
가장 많이 판매된 상품 Top2 제품을 모두 구매한 구매자 !
필요 데이터 :
mydata002.dataset3 사용
고객 ID ➜ customerID
상품번호 ➜ StockCode
판매수량 ➜ Quantity
조회방법
1. 제품별 판매수량 조회
해석
제품별로 묶어주기 위해 group by 를 이용해 그룹화 해준다.
판매수량을 조회하기 위해서 sum() 합계 집계함수를 이용해 제품별 판매수량을 조회한다. 그리고 보기 편하도록 컬럼명을 QTY 로 설정해준다.
2. 가장 많이 판매된 상품 Top2 조회
서브쿼리를 이용해서 순위산출 함수를 사용할 수 있지만, 빠르게 하기 위해
(1) 번의 내용에서 판매수량 순서로 정렬을 해준 후 상위 2개만 출력되도록 한다.
판매수량 순으로 정렬하기 위해서는 order by 를 사용하고 큰 것이 위로 출력되어야 하기 때문에 desc 를 사용한다.
상위 2개만 출력하기 위해 limit 을 이용해 출력 갯수를 제한한다.
결과 : 가장 판매가 많이 된 상품은 '84077', '85123A' 상품이다.
3. '84077' 와 '85123A' 상품을 모두 구매한 고객 조회 후 테이블화
테이블명 = B_list
해석
고객ID 를 조회할 건데 이때
case when 을 이용하여 84077 을 구매했으면 1, 구매하지 않았으면 0
➜
max() 를 씌워서 1이 나오게 되면 84077 상품을 구매한 고객이다
&& 그리고
case when 을 이용하여 85123A 을 구매했으면 1, 구매하지 않았으면 0
➜
max() 를 씌워서 1이 나오게 되면 85123A 상품을 구매한 고객이다
이렇게 조회된 고객은 '84077' 와 '85123A' 상품을 모두 구매한 고객이다.
이 데이터를 테이블화 해준다.
4. (3) 번에서 조회된 구매자가 구매한 제품 리스트 조회 (이때, top2 제품은 제외하고 조회)
해석
조건 1. customerID 가 B_list 에 잇는 customerID 와 동일해야 한다.
customerID in (select customerID from mydata002.B_list)
조건 2. stockCode 가 '84077' 와 '85123A' 아니어야 한다.
StockCode not in ('84077', '85123A')
이 두개의 조건을 모두 만족해야 하기 때문에 and 로 연결해준다.
'DATABASE' 카테고리의 다른 글
Q. 코흐트 분석 (0) | 2023.12.06 |
---|---|
(MySQL 기준) 동작 순서 (0) | 2023.12.04 |
Q. 고객등급별 주문 건수 조회 (0) | 2023.12.02 |
Q. 재구매율이 가장 높은 상품 조회 (0) | 2023.11.30 |
Q. 주문 건수가 많은 시간대 조회 (0) | 2023.11.29 |