본문 바로가기
DBMS

[프로그래머스 SQL] Lv. 2 재구매가 일어난 상품과 회원 리스트 구하기

by floral1215 2025. 6. 24.
반응형

※ 문제

 

※ 코드

SELECT      USER_ID, PRODUCT_ID
FROM        ONLINE_SALE
GROUP BY    USER_ID, PRODUCT_ID
HAVING      COUNT(*) >= 2
ORDER BY    USER_ID, PRODUCT_ID DESC;

 

※ 풀이

처음으로 2개 이상의 COLUMN을 이용한 GROUPING 문제가 등장했습니다.

 

우선 USER_ID로 그룹화를 진행하면 각 USER_ID 별로 모든 구매 기록이 구해질 것입니다.

다음으로 PRODUCT_ID로 그룹화를 진행하면 PRODUCT_ID 별로 제품별 판매 개수, 판매 일자 등이 나오게 됩니다.

 

이걸 HAVING 절에서 COUNT(*)를 구하면 각 고객이 제품 별로 구매한 개수가 나오게 됩니다. 이 값이 2 이상이라면 재구매가 발생한 것으로 볼 수가 있습니다.

 

이렇게 GROUP BY ~ HAVING 문법을 통해 문제를 해결해 보았습니다!!!

반응형