본문 바로가기

코딩테스트

[SQL] 프로그래머스 - 재구매가 일어난 상품과 회원 리스트 구하기

728x90

 

 

🤔 배운 것

COLUMN 들을 그룹화 하기 : GROUP BY

그룹의 조회 조건을 세우기 : HAVING

COUNT, AVG, SUM, MAX, MIN등으로 조회한 데이터의 양, 평균, 합, 최대, 최소를 구할 수 있다. 

 

// USER_ID 와 PRODUCT_ID를 COLUMN으로 하는 테이블을 만들 것이므로
SELECT USER_ID, PRODUCT_ID

// ONLINE_SALE 테이블에서 조회할 것이므로
FROM ONLINE_SALE

// 어떤 USER가 재구매한 내역을 조회할 것이기 때문에
GROUP BY 1,2 -> USER_ID, PRODUCT_ID 와 동일

// 재구매 한 물품이면 해당 USER가 구매한 PRODUCT_ID가 2개 이상일 것이므로
// 그룹화 한 것의 PRODUCT_ID > 1 이라는 HAVING 조건을 세운다.
HAVING COUNT(PRODUCT_ID) > 1

// 회원 ID를 기준으로 오름차순 정렬하고 
// 회원 ID가 같다면 상품 ID를 기준으로 내림차순 정렬한다.
ORDER BY USER_ID ASC, PRODUCT_ID DESC
728x90
반응형