인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

비긴이계인님의 프로필 이미지
비긴이계인

작성한 질문수

[백문이불여일타] 데이터 분석을 위한 고급 SQL

#질문

작성

·

273

1

고객(고객ID(PK),고객명,나이) 

추천컨텐츠(고객ID(FK),컨텐츠ID(FK),추천대상일자)

비선호컨텐츠 (고객ID(FK),컨텐츠ID(FK),등록일시)

컨텐츠(컨텐츠ID,컨텐츠명)

위와 같은 테이블4개가 존재

[설명]매일 배치작업을 통해 고객에게 추천할 컴텐츠를 새엉하고 고객에게 추천서비스를 제공한다. 추천컨텐츠 엔티티에서 언제 추천을 해야하는지를 정히하는추천대상일자가 있어 해당일자에만 컨테츠를 추천해야한다.

또한 고객이 컨텐츠를 추천 받았을 떄 선호하는 컨테츠가 아닌 경우에는 고객이 비선호 컨텐츠롤 분류하여 더 이상 추천 받기를 원하지 않는다 그러므로 우리는 비선호 컨텐츠 엔티티에 등록된 데이터에 대해서는 수행을 하지 않아야 한다.

위 설명을 참고해서 아래와 같은 쿼리를 작성할 수 있을때 , #custid#에서 #은 어떤 용도로 쓰이는지 궁금합니다.

SELECT C.컨텐츠ID, C.컨텐츠명

FROM 고객 A Inner Join 추천컨텐츠 B

ON    (A.고객ID = B.고객ID) Inner Join 컨텐츠 C

ON   (B.컨텐츠ID = C.컨텐츠ID)

WHERE A.고객ID= #custid#

AND B.추천대상일자 = TO_CHAR(SYSDATE, 'YYYY.MM.DD')

AND NOT EXIST (SELECT X.컨텐츠ID

                                    FROM 비선호컨텐츠 X

                                     WHERE X.고객ID = B.고객ID);

답변 1

0

송혜정님의 프로필 이미지
송혜정
지식공유자

안녕하세요 소이님,

질문 남겨주신 내용은 별도로 답변을 받으신 걸로 알고 있어, 추가로 답변은 드리지 않도록 하겠습니다.

궁금한 점 있으시면 언제든 질문 남겨주세요 :)

비긴이계인님의 프로필 이미지
비긴이계인

작성한 질문수

질문하기