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

SQL

목록 보기
3/8
post-thumbnail

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

틀린풀이

SELECT U.USER_ID, U.NICKNAME, SUM(B.PRICE)
FROM USED_GOODS_BOARD B, USED_GOODS_USER U
WHERE U.USER_ID 
        IN (SELECT WRITER_ID
            FROM USED_GOODS_BOARD
            GROUP BY WRITER_ID
            HAVING SUM(PRICE) >= 700000)
GROUP BY U.USER_ID, U.NICKNAME
ORDER BY U.USER_ID

틀린 이유)
문제조건이었던 "거래가 완료된 사용자" 를 빠트림.

고쳐서 맞은풀이

SELECT U.USER_ID, U.NICKNAME, SUM(B.PRICE) AS TOTAL_SALES
FROM USED_GOODS_USER U, USED_GOODS_BOARD B
WHERE U.USER_ID = B.WRITER_ID
    AND B.STATUS ="DONE"
GROUP BY U.USER_ID
HAVING SUM(B.PRICE) >= 700000
ORDER BY TOTAL_SALES

JOIN으로 풀기

SELECT U.USER_ID, U.NICKNAME, SUM(PRICE) TOTAL_SALES
FROM USED_GOODS_BOARD B JOIN USED_GOODS_USER U
    ON B.WRITER_ID = U.USER_ID
WHERE B.STATUS = 'DONE'
GROUP BY U.USER_ID, U.NICKNAME
HAVING SUM(PRICE) >= 700000    
ORDER BY TOTAL_SALES 

피드백

이게,, 조건을 빠트려ㅕㅆ구나..
제대로 봐야되구나... 꼼꼼히 조건을 살피고 테이블도 살펴야되는구나...
진짜 바보같다
하지만 꼭 꼼꼼히 문제조건과 테이블을 살피기 약속,,,

profile
두둥탁 뉴비등장

0개의 댓글