[Programmers_SQL] 11. 재구매가 일어난 상품과 회원 리스트 구하기

문정준's avatar
Mar 05, 2025
[Programmers_SQL] 11. 재구매가 일어난 상품과 회원 리스트 구하기
 
💡
프로그래머스 SELECT 11. 재구매가 일어난 상품과 회원 리스트 구하기

1. 문제 설명

notion image
 

2. 문제

notion image

3. 예시

notion image
 

4. 문제 풀이

SELECT user_id, product_id from ONLINE_SALE group by user_id, product_id having count(*) > 1 order by user_id, product_id desc;
  • 1 Line : 재구매를 한 회원 id, 제품 id를 출력
    • SELECT user_id, product_id
  • 2 Line : ONLINE_SALE 데이터에서 출력
    • from ONLINE_SALE
  • 3 Line : 유저별, 제품별 구매 횟수 그룹화
    • 재구매 발생 시 여러 개가 조회
    • group by user_id, product_id
  • 4 Line : 출력한 데이터 중 개수가 1개 이상인 데이터만 출력 = 재구매 데이터
    • having count(*) > 1
  • 5 Line : user_id를 기준으로 오름차순, 같으면 product_id를 기준으로 내림차순 정렬
    • order by user_id, product_id desc;

5. 결과 확인

notion image
notion image
 

Solution

🚀

Trouble Shooting

Grouping 기준을 확인하자!
  • 회원이 재구매한 제품을 확인해야 함
  • 회원이 재구매할 경우 회원 번호, 제품 번호는 그대로이지만 주문 번호는 다르므로 count(*)의 결과는 1 이상임
  • 그룹화 한 이후의 결과를 가지고 조회해야 하므로 having 사용
Share article

sxias