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컬럼을 기준
실행결과
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
Level2 - 예상 대진표 (0) | 2023.05.22 |
---|---|
Level2 구명보트 ( 탐욕법 Greedy ) (0) | 2023.05.21 |
(MySQL LEVEL-2) 자동차 평균 대여 기간 구하기 - 프로그래머스 (0) | 2023.05.11 |
프로그래머스 Level2 요약정리 (정답률 높은 문제 - 2~8번) (0) | 2023.03.24 |
자바(HashMap) (0) | 2023.02.04 |
댓글