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

임정민·2023년 5월 22일

SQL 문제풀이

목록 보기
38/53
post-thumbnail

SQL 공부중 입니다. ✍✍✍

문제

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

풀이

SELECT UGU.USER_ID, UGU.NICKNAME, SUM(PRICE) "TOTAL_SALES"
    FROM USED_GOODS_BOARD UGB
    INNER JOIN USED_GOODS_USER UGU
    ON UGB.WRITER_ID = UGU.USER_ID
    WHERE UGB.STATUS = 'DONE'
    GROUP BY UGB.WRITER_ID
    HAVING SUM(PRICE) >= 700000
    ORDER BY SUM(PRICE) ASC;

두 테이블을 JOIN하여 사용자의 총 판매량을 출력하는 문제였습니다. JOIN 해야되는 WRITER_ID, USER_ID 두 컬럼명이 달라서 조금 당황했지만 문맥상 적절한 외래키 파악하여 JOIN 시켰습니다. 🤸🤸🤸

또 문제에서 지칭하는 중고 거래 게시판 첨부파일 정보 테이블의 이름 (USED_GOODS_FILE)이 문제 하단에서는 USED_GOODS_USER으로 언급하는 문제 오류가 있어 'USED_GOODS_FILE' doesn't exists 오류가 뜨기도 하였습니다. 💢💢💢

저의 풀이 이외에 LEFT JOIN을 활용한 풀이도 볼 수 있었습니다.


-- 게시판 정보 USER_GOODS_BOARD
-- 유저 정보 USED_GOODS_USER
SELECT B.USER_ID, B.NICKNAME, SUM(A.PRICE) AS TOTAL_SALES
FROM USED_GOODS_BOARD A
LEFT JOIN USED_GOODS_USER B ON (A.WRITER_ID = B.USER_ID)
WHERE STATUS = 'DONE'
GROUP BY B.USER_ID
HAVING TOTAL_SALES >= 700000
ORDER BY TOTAL_SALES;

감사합니다.🦌🦌🦌

profile
https://github.com/min731

0개의 댓글