문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/131536
코드
SELECT USER_ID, PRODUCT_ID
FROM ONLINE_SALE
GROUP BY USER_ID, PRODUCT_ID
HAVING COUNT(PRODUCT_ID) > 1
ORDER BY USER_ID ASC, PRODUCT_ID DESC;
SELECT ~ FROM 절
ONLINE_SALE 테이블의 USER_ID와 PRODUCT_ID 컬럼을 조회한다.
GROUP BY 절
동일한 회원이 동일한 상품을 재구매한 데이터를 조회해야 하므로 USER_ID와 PRODUCT_ID 컬럼을 그룹화한다.
예시 테이블의 USER_ID가 1인 경우를 살펴보면, PRODUCT_ID가 3인 상품과 4인 상품을 각각 2번씩 구매하여 재구매한 상품이 2개가 된다. USER_ID가 같으면서 PRODUCT_ID도 같은 컬럼을 그룹화하여 조회할 수 있다.
HAVING 절
그룹화 조건으로 PRODUCT_ID 개수가 1개보다 많은 조건으로 그룹화한다.
ORDER BY 절
USER_ID를 기준으로 오름차순 정렬하고 USER_ID가 같다면 PRODUCT_ID를 기준으로 내림차순 정렬한다.
참조
https://ittrue.tistory.com/396
[프로그래머스] 재구매가 일어난 상품과 회원 리스트 구하기 - MySQL
문제 https://school.programmers.co.kr/learn/courses/30/lessons/131536 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이
ittrue.tistory.com
'코딩테스트' 카테고리의 다른 글
Programmers / SQL / 아픈 동물 찾기 (0) | 2024.08.04 |
---|