본문 바로가기
코딩테스트/프로그래머스

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

by 고구마는호박고구마 2023. 5. 12.

USER_ID 가 재구매한 상품이 있는지 있다면 USER_ID와 PRODUCT_ID를 출력

위 테이블에서는 1번 유저가 3번,4번을 재구매 했고 2번이 4번을 재구매했다.

이와 같은 결과를 출력해라


이 문제를 풀기 앞서 알아야 하는 개념

 

GROUP BY 그룹바이는 컬럼리스트중 같다면 하나의 그룹으로 만들어 준다.

 - 위의 테이블에서 GROUP BY USER_ID로 처리하게 된다면 

 1

 2

 3 

의 그룹으로 묶인다.

하지만 저 문제에서는 하나의 컬럼이 아닌 두 개의 컬럼이 밑에서 중복이 된다면 그 두 개의 컬럼을 기준으로 중복된 값만 묶이길 원한다.

그렇다면 GROUP BY뒤에 2개의 컬럼을 설정해 주면 된다.

 

 

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

 

해설 

 

1. 1 컬럼과 2컬럼을 기준으로 그룹으로 묶는다.

2. 묶인 그룹의 개수가 2이상인것만 분류

3. 1 컬럼 내림차순 같다면 2컬럼을 기준

 

실행결과

 

댓글