5 선호도 분석 : 개인별 두 번째 선호 상품 분석
분석 16 전용 상품 매출 상위 10위 이상 고객이 두 번째로 선호하는 상품을 확인해 보세요.
추천 SQL : HAVING
SELECT *
FROM (
SELECT A.고객아이디,
A.고객이름,
D.product_name 상품명,
SUM(C.sales) 상품매출,
RANK() OVER(PARTITION BY A.고객아이디 ORDER BY SUM(C.sales) DESC) 선호도순위
FROM
(
SELECT A.customer_id 고객아이디,
A.customer_name 고객이름,
SUM(C.sales) 전용상품_매출
FROM customer A, reservation B, order_info C
WHERE A.customer_id = B.customer_id
AND B.reserv_no = C.reserv_no
AND B.cancel = 'N'
AND C.item_id = 'M0001'
GROUP BY A.customer_id, A.customer_name
HAVING SUM(C.sales) > = 216000----➊
) A, reservation B, order_info C, item D
WHERE A.고객아이디 = B.customer_id
AND B.reserv_no = C.reserv_no
AND C.item_id = D.item_id
AND D.item_id <> 'M0001'----➋
AND B.cancel = 'N'
GROUP BY A.고객아이디, A.고객이름, D.product_name
) A
WHERE A.선호도순위 = 1;
➊ 이미 전용 상품 상위 10위 고객의 매출이 216,000원 이상인 것을 알기 때문에('12.4.4 상위 고객 분석 : 상위 10위 고객 찾아내기' 참고) 일부러 HAVING 명령어를 사용했습니다. 물론 인라인 뷰에서 RANK 함수를 사용해도 됩니다.
➋ 전용 상품 매출 상위 10위 고객에 대해 전용 상품을 제외하고 출력하는 조건 때문에 전용 상품을 제외한 최대 매출 상품이 출력됩니다