더북(TheBook)

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위 고객에 대해 전용 상품을 제외하고 출력하는 조건 때문에 전용 상품을 제외한 최대 매출 상품이 출력됩니다