코딩 테스트/SQL

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

susinlee 2024. 12. 11. 10:49

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


[단계별 풀이]
1. BOARD 테이블과 USER 테이블을 각각 WRITER_ID와 USER_ID로 JOIN

2. STATUS가 DONE인 행들만 필터링 (WHERE)

3. USER_ID로 GROUP BY 후 PRICE을 SUM → 총거래금액

4. 총거래금액이 70만인 행들만 필터링 (HAVING) → MYSQL은 HAVING에 SELECT 절의 별칭을 사용할 수 있다

5. 회원ID, 닉네임, 총거래금액 선택

6.. 총거래금액으로 오름차순 정렬


[정답]

SELECT U.USER_ID,
       U.NICKNAME,
       SUM(B.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
HAVING TOTAL_SALES >= 700000
ORDER BY TOTAL_SALES