Notice
Recent Posts
Recent Comments
Link
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
Tags more
Archives
Today
Total
관리 메뉴

luke

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

DB/프로그래머스(MySQL)

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

luke-king 2026. 1. 18. 21:16

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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

 

 

 

 

 

 

 

문제.


 

 

 

 

 

 

 

풀이.


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

이번 문제는 프로그래머스 "조건에 맞는 사용자와 총 거래금액 조회하기" MySQL 문제다.

문제 접근은 USED_GOODS_BOARD 테이블의 STATUS 값이 "DONE"이고 PRICE 합이 700,000 이상인 값을 출력하면 된다.

그럼 바로 풀이 해보겠다.

 

1. 출력해주기 위한 USER_ID, NICKNAME, SUM(PRICE)를 넣어 준다. 여기서 각 테이블마다 별칭을 사용했기에 테이블에 있는 값들에 맞게 별칭을 넣어 준다.

 

2. LEFT JOIN을 사용해서 USED_GOOD_BOARD테이블 기준으로 WRITER_ID, USER_ID 값이 같은 애들만 나오게 끔 조건을 해준다.

 

3. WHERE 절을 사용해 STATUS 값이 'DONE'인 애들을 추린다.

 

4. GROUP BY 절을 사용해 WRITER_ID, USER_ID 값들이 중복되지 않은 값들로 추린다.

 

5. 그룹화가 되었다면 HAVING절을 사용해 SUM(PRICE) 값이 700000 이상인 조건절을 추가해준다.

 

6. 마지막으로 TOTAL_SALES 즉 SUM(PRICE) 값을 기준으로 오름차순으로 정렬해주면 끝이다.