[프로그래머스/MySQL] 조건에 맞는 사용자와 총 거래금액 조회하기

지누초이·2024년 3월 28일

프로그래머스

목록 보기
24/37
post-thumbnail

문제

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

더 좋은 해결방법이 있다면 언제든 댓글로 알려주세요 🤗

0개의 댓글