참치코더의 꿈 메모장

Oracle / 프로그래머스 - 재구매가 일어난 상품과 회원 리스트 구하기 본문

Oracle

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

참치깡 2025. 10. 7. 00:47
728x90

1
2
3
4
5
SELECT USER_ID, PRODUCT_ID
FROM ONLINE_SALE
GROUP BY USER_ID, PRODUCT_ID
HAVING COUNT(*> 1
ORDER BY USER_ID ASC, PRODUCT_ID DESC;
cs

 

- ONLINE_SALE 테이블에서 동일한 회원이 동일한 상품을 재구매한 데이터를 구하여 재구매한 회원 ID와 

  재구매한 상품 ID를 출력하는 문제이다.

 

- FROM절로 참조하려는 테이블을 적어놓고(ONLINE_SALE)

 

- 각각의 USER_ID, PRODUCT_ID로 그룹을 만들면 해당 아이디당 어떤 상품을 구매했는지 전체 목록을 

  구할 수 있다. 여기서 재구매한 목록을 구하려면 HAVING조건을 걸어 COUNT(*) > 1 인 조건을 준다면 

  재구매한 데이터 목록을 구할 수 있다.

 

- 다음 SELECT절에 구할 컬럼 회원 ID, 상품 ID를 넣어주면된다.

 

- 마지막으로 문제에서 요구한 회원ID를 기준으로 오름차순 정렬, 회원 ID가 같다면 상품 ID를 기준으로 

  내림차순 정렬하도록 작성하면 문제의 정답을 구할 수 있다.

 

실행 결과 일부 발췌

728x90
Comments