Dev Hyeri

◖코딩 테스트◗▬▬▬▬▬▬▬▬▬/프로그래머스

[SQL KIT] (2024) 재구매가 일어난 상품과 회원 리스트 구하기

_hyeri 2024. 1. 17. 15:24

문제 링크 : 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(USER_ID) > 1
ORDER BY USER_ID ASC, PRODUCT_ID DESC

 

내부 동작 순서 

 

1. FROM 절

 

2. GROUP BY 절

USER_ID 별로 행을 묶고, 그 안에서 PRODUCT_ID 별로 묶는다 

 

3. HAVING 절 

재구매 고객은 하나 이상의 기록이 남았을 테니 GROUP BY에서 USER_ID별로 그룹화한 것이 2개부터인 행만 필터링한다 

 

4. SELECT 절 

 

5. ORDER BY 절

USER_ID 컬럼값을 오름차순으로 한 뒤 USER_ID 값이 같은 행은 PRODUCT_ID 컬럼의 값을 내림차순으로 정렬한다.

 

USER_IDPRODUCT_ID

USER_ID PRODUCT_ID
15 12
119 12