Algorithm/Programmers SQL

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

제우제우 2024. 9. 15. 23:23

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

코딩테스트 연습 > GROUP BY > 조건에 맞는 사용자와 총 거래금액 조회하기

 

문제 분석

난이도: LEVEL3

 

문제 요구사항

USED_GOODS_BOARD와 USED_GOODS_USER 테이블에서 완료된 중고 거래의 총금액이 70만 원 이상인 사람의 회원 ID, 닉네임, 총거래금액을 조회하는 SQL문을 작성해주세요. 

결과는 총거래금액을 기준으로 오름차순 정렬해주세요.

 

완료된 중고 거래 (STATUS = 'DONE')

먼저 CTE를 통해서 완료된 중고 거래의 총금액이 70만 원 이상인 사람의 정보를 구한다.

WITH USED_CTE AS (
    SELECT WRITER_ID, SUM(PRICE) SUM_PRICE
    FROM USED_GOODS_BOARD
    GROUP BY WRITER_ID, STATUS  
    HAVING SUM_PRICE >= 700000 AND STATUS = 'DONE'
)

 

WRITER_ID, USER_ID ON 조건으로 CTE와 USED_GOODS_USER 조인하여 추가로 필요한 정보인 NICKNAME을 얻어낸다. 

정답 코드 

WITH USED_CTE AS (
    SELECT WRITER_ID, SUM(PRICE) SUM_PRICE
    FROM USED_GOODS_BOARD
    GROUP BY WRITER_ID, STATUS  
    HAVING SUM_PRICE >= 700000 AND STATUS = 'DONE'
)
SELECT U.USER_ID, U.NICKNAME, C.SUM_PRICE TOTAL_SALES
FROM USED_CTE C JOIN USED_GOODS_USER U
ON C.WRITER_ID = U.USER_ID
ORDER BY 3