Road to Data Scientist

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

코딩 테스트/SQL

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

ShazelP 2025. 11. 22. 23:27

조건에 맞는 사용자와 총 거래금액 조회하기

 

USED_GOODS_BOARD 테이블

 

USED_GOODS_USER 테이블

문제

USED_GOODS_BOARD와 USED_GOODS_USER 테이블에서 완료된 중고 거래의 총금액이 70만 원 이상인 사람의 회원 ID, 닉네임, 총거래금액을 조회하는 SQL문을 작성해주세요. 결과는 총거래금액을 기준으로 오름차순 정렬해주세요.

 

정답예시

코드

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

 

설명

1. USED_GOODS_BOARD(A) 테이블과 USED_GOODS_USER(B) 의 테이블을 JOIN 하여 게시판 이용 사용자와 개인 사용자의 정보를 하나의 테이블로 만든다 

1.1 USER_ID 와 WRITER_ID 가 나타내는 의미가 같으므로 해당 값을 기준으로 조인 : ON A.USER_ID = B.WRITER_ID

2. 거래 완료된 유저의 상태는 DONE 이므로 : WHERE B.STATUS = 'DONE'

3. 총 거래액이 70만원 이상인 유저를 알아야 하기 때문에

3.1 SELECT 절에서 A.USER_ID, A.NICKNAME, SUM(B.PRICE) AS TOTAL_SALES 를 걸어주고

3.2 집계(SUM)를 위해 GROUP BY 로 A.USER_ID 기준으로 묶어줌

3.3. NICKNAME은 유저별 1개 이므로 같이 묶어도 되고 안 묶어도 됨

4. 그 중 70만원 이상만 원하기 때문에 : HAVING TOTAL_SALES >= 700000

4.1 GROUP BY 결과에서 조건을 걸야 하기 때문에 WHERE (X) HAVING(O)

5. 마지막으로 총거래금액 기준 오름차순 : ORDER BY TOTAL_SALES

출처

 

 

프로그래머스

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

programmers.co.kr