Coding Test/SQL Coding Test
[프로그래머스 / SQL] - 재구매가 일어난 상품과 회원 리스트 구하기
nam_ji
2024. 10. 31. 12:53
재구매가 일어난 상품과 회원 리스트 구하기 - LV.2
문제
- 의류 쇼핑몰의 온라인 상품 판매 정보를 담은 ONLINE_SALE 테이블이 있습니다.
- 테이블은 ONLINE_SALE_ID, USER_ID, PRODUCT_ID, SALES_AMOUNT, SALES_DATE의 컬럼이 존재하고
각각 온라인 상품 판매 ID, 회원 ID, 상품 ID, 판매량, 판매일을 나타냅니다. - 문제
- 동일한 회원이 동일한 상품을 재구매한 데이터를 구하여,
- 재구매한 회원 ID와 재구매한 상품 ID를
- 회원 ID 기준 오름차순, 회원 ID가 같다면 상품 ID를 기준으로 내림차순 정렬하여 출력하는 문제입니다.
프로그래머스 코드
- 먼저 조회하고 싶은데 컬럼부터 SELECT 뒤에 작성해줍니다.
- FROM으로 해당 컬럼이 존재하는 테이블 명을 작성하고
- GROUP BY로 특정 컬럼을 기준으로 그룹화를 시켜줍니다.
- 이후 HAVING절에 PRODUCT_ID를 COUNT 함수로 갯수를 파악했을 때 그 값이 2 이상이면이라는 조건을 주고
- 마지막으로 ORDER BY를 통해 정렬을 해주면 해결할 수 있습니다.
-- 코드를 입력하세요
SELECT
USER_ID,
PRODUCT_ID
FROM ONLINE_SALE
GROUP BY USER_ID, PRODUCT_ID
HAVING COUNT(PRODUCT_ID) > 1
ORDER BY USER_ID ASC, PRODUCT_ID DESC;