[프로그래머스 LV.2] 재구매가 일어난 상품과 회원 리스트 구하기 — MySQL 정답 & 해설

2025. 12. 3. 17:39·코딩테스트/MYSQL

🔗 1. 문제 URL

https://school.programmers.co.kr/learn/courses/30/lessons/131536

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 


 

📝 2. 문제 요구사항 정리

ONLINE_SALE 테이블에는 온라인 상품 판매 정보가 저장되어 있으며, 동일한 날짜·회원·상품 조합은 한 번만 기록됩니다.
이 문제에서는 동일한 회원이 동일한 상품을 2번 이상 구매한 경우(재구매)를 찾아야 합니다.

 

✔ 요구사항 요약 

  • 재구매한 USER_ID, PRODUCT_ID 출력
  • USER_ID 기준 오름차순 정렬
  • 같은 회원이라면 PRODUCT_ID 기준 내림차순 정렬

 


 

💡 3. 핵심 개념

이 문제는 회원 ID + 상품 ID 기준으로 그룹화하여 구매 횟수를 확인하는 것이 핵심입니다.

적용되는 SQL 핵심 요소는 다음과 같습니다.

  • GROUP BY USER_ID, PRODUCT_ID
  • HAVING COUNT(*) >= 2 → 해당 상품을 2번 이상 구매했는지 확인
  • ORDER BY USER_ID ASC, PRODUCT_ID DESC

즉, 동일한 회원·상품 조합이 몇 번 등장했는지를 기준으로 재구매 여부를 판단합니다.

 


 

✅ 4. 정답 SQL 코드

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

-- 재구매한 회원 ID와 재구매한 상품 ID를 출력하는 SQL문
-- 재구매 = 유저ID, 상품ID가 동일한게 두번 이상 나타나야 함.

 


 

💬 5. 풀이하면서 느낀 점

이번 문제는 GROUP BY 절에서 여러 컬럼을 함께 사용해 그룹화하는 방식과
ORDER BY 절에서 두 가지 정렬 기준을 적용하는 흐름을 익힐 수 있는 구조였습니다.
전체적인 난이도는 높지 않아 기본 개념만 이해하고 있다면 무리 없이 해결할 수 있는 문제였습니다.

 

궁금하신 점이나 포스팅에 대한 피드백이 있다면 댓글로 편하게 남겨주세요.
도움이 되셨다면 공감이나 댓글 한 줄 남겨주시면 포스팅을 이어가는 데 큰 힘이 됩니다. 😊

'코딩테스트 > MYSQL' 카테고리의 다른 글

[프로그래머스 LV.2] 상품 별 오프라인 매출 구하기 — MySQL 정답 & 해설  (0) 2025.12.08
[프로그래머스 LV.2] 분기별 분화된 대장균의 개체 수 구하기 — MySQL 정답 & 해설  (0) 2025.12.03
[프로그래머스 LV.2] 성분으로 구분한 아이스크림 총 주문량 — MySQL 정답 & 해설  (0) 2025.12.01
[프로그래머스 LV.2] 조건에 맞는 도서와 저자 리스트 출력하기 — MySQL 정답 & 해설  (3) 2025.11.29
[프로그래머스 LV.2] 조건에 맞는 사원 정보 조회하기 — MySQL 정답 & 해설  (0) 2025.11.29
'코딩테스트/MYSQL' 카테고리의 다른 글
  • [프로그래머스 LV.2] 상품 별 오프라인 매출 구하기 — MySQL 정답 & 해설
  • [프로그래머스 LV.2] 분기별 분화된 대장균의 개체 수 구하기 — MySQL 정답 & 해설
  • [프로그래머스 LV.2] 성분으로 구분한 아이스크림 총 주문량 — MySQL 정답 & 해설
  • [프로그래머스 LV.2] 조건에 맞는 도서와 저자 리스트 출력하기 — MySQL 정답 & 해설
작지만 꾸준한 성장으로
작지만 꾸준한 성장으로
contact
  • 작지만 꾸준한 성장으로
    파랑새
    작지만 꾸준한 성장으로
  • 전체
    오늘
    어제
    • 분류 전체보기 (26)
      • IT (3)
      • 코딩테스트 (23)
        • 알고리즘 (12)
        • MYSQL (11)
      • 패션 (0)
      • 독후감 (0)
      • TIL (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    python3
    와이드 포맷 롱 포맷
    파이썬
    wide format
    코테
    모델 추론
    Pandas pivot
    Programmers
    파이썬코테
    SWEA
    프로그래머스 lv.2
    프로그래머스
    Pandas melt
    백준
    공공데이터 전처리
    프로그래머스 lv.0
    CPU Bound
    mysql
    코딩테스트
    프로그래머스 lv.1
    sql 코딩테스트
    Python
    알고리즘
    I/O Bound
    long format
    Pandas groupby agg
    데이터 전처리 파이프라인
    데이터 리모델링
    자바
    데이터베이스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
작지만 꾸준한 성장으로
[프로그래머스 LV.2] 재구매가 일어난 상품과 회원 리스트 구하기 — MySQL 정답 & 해설
상단으로

티스토리툴바