https://school.programmers.co.kr/learn/courses/30/lessons/164668
완료된 중고거래의 총금액이 70만원 이상 인 고객들의 ID, 닉네임, 총금액을 추출하는 문제이다.
완료된 중고거래의 총금액이 70만원 이상 인 고객들의 ID만 찾는다면
해당 ID를 통해 유저 테이블에서 나머지 정보를 빼올 수 있다.
일단 총금액을 유저 별로 계산해보자.
SELECT
WRITER_ID, SUM(PRICE) AS TOTAL_SALES
FROM
USED_GOODS_BOARD
GROUP BY
WRITER_ID
위 정보들 중에 완료된 거래여야하므로 조건을 추가해준다.
SELECT
WRITER_ID, SUM(PRICE) AS TOTAL_SALES
FROM
USED_GOODS_BOARD
WHERE
STATUS = 'DONE'
GROUP BY
WRITER_ID
그리고 계산된 값이 70만원 이상이어야하므로, 그룹화 된 이후 조건인 HAVING 을 사용하자.
SELECT
WRITER_ID, SUM(PRICE) AS TOTAL_SALES
FROM
USED_GOODS_BOARD
WHERE
STATUS = 'DONE'
GROUP BY
WRITER_ID
HAVING
TOTAL_SALES >= 700000
이제 조건에 만족하는 고객들의 ID를 찾았으므로
JOIN 을 통해 값을 얻으면 된다.
결과 코드는 아래에..
WITH TOTAL_LIST AS (
SELECT
WRITER_ID, SUM(PRICE) AS TOTAL_SALES
FROM
USED_GOODS_BOARD
WHERE
STATUS = 'DONE'
GROUP BY
WRITER_ID
HAVING
TOTAL_SALES >= 700000
)
SELECT
USER_ID
, NICKNAME
, TOTAL_SALES
FROM
USED_GOODS_USER
, TOTAL_LIST
WHERE
USER_ID = WRITER_ID
ORDER BY
TOTAL_SALES
더 좋은 해결방법이 있다면 언제든 댓글로 알려주세요 🤗