자료구조 및 알고리즘/프로그래머스

프로그래머스 - 재구매가 일어난 상품과 회원 리스트 구하기 (SQL)

viamemine 2024. 4. 17. 13:18
728x90
반응형

 


 

💬 내가 작성한 SQL 코드

SELECT USER_ID, PRODUCT_ID
FROM ONLINE_SALE
GROUP BY USER_ID, PRODUCT_ID
HAVING COUNT(PRODUCT_ID) >= 2  # 1이 아니라 2부터 ! 재구매
ORDER BY USER_ID ASC, PRODUCT_ID DESC;

# 1. 동일한 회원이 동일한 상품을 재구매한 데이터
# 2. 재구매한 회원 ID와 재구매한 상품 ID를 출력
# 3. 회원 ID를 기준으로 오름차순 정렬
# 4. 회원 ID가 같다면 상품 ID를 기준으로 내림차순 정렬

 


 

이번 문제는 HAVING을 사용하는 문제였다.

 

HAVING은 해석상 WHERE과 동일하다.

일반조건은 WHERE 절에 기술하지만, 그룹 함수를 포함한 조건은 HAVING 절에 기술한다.

 

재구매 회원을 확인할 때, COUNT(PRODUCT_ID) > 1 임을 알게되었다.

(2번 이상 구매해야지 재구매이기 때문!)

 

 

 

 

 

 

728x90