본문 바로가기

DB/Programmers SQL Kit

재구매가 일어난 상품과 회원 리스트 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/131536

 

- ONLINE_SALE 테이블의 회원 ID와 재구매 상품의 ID를 출력한다.

단, 회원 id 기준 오름차순, 상품 id 기준 내림차순 정렬한다.

1. 회원 id, 상품id 기준으로 그룹핑한 테이블을 생성한다.

2. 그룹핑한 테이블엔 상품id의 count를 세는 속성도 존재하고, count값이 2 이상되는 값만 있어야한다.

3. 해당 테이블을 기준으로하여 회원과 상품id를 조회한다.

- SQL

SELECT user_id, product_id
FROM (
    SELECT user_id, product_id, count(product_id)
    FROM ONLINE_SALE
    GROUP BY user_id, product_id
    HAVING count(product_id) > 1
)
ORDER BY user_id ASC, product_id DESC;