테이블은 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;