https://school.programmers.co.kr/learn/courses/30/lessons/164668
🔍 문제
다음은 중고 거래 게시판 정보를 담은 USED_GOODS_BOARD 테이블과 중고 거래 게시판 사용자 정보를 담은 USED_GOODS_USER 테이블입니다. USED_GOODS_BOARD 테이블은 다음과 같으며 BOARD_ID, WRITER_ID, TITLE, CONTENTS, PRICE, CREATED_DATE, STATUS, VIEWS는 게시글 ID, 작성자 ID, 게시글 제목, 게시글 내용, 가격, 작성일, 거래상태, 조회수를 의미합니다.

USED_GOODS_USER 테이블은 다음과 같으며 USER_ID, NICKNAME, CITY, STREET_ADDRESS1, STREET_ADDRESS2, TLNO는 각각 회원 ID, 닉네임, 시, 도로명 주소, 전화번호를 나타낸다.

USED_GOODS_BOARD와 USED_GOODS_USER 테이블에서 완료된 중고 거래의 총금액이 70만 원 이상인 사람의 회원 ID, 닉네임, 총거래금액을 조회하는 SQL문을 작성해주세요. 결과는 총거래금액을 기준으로 오름차순 정렬해주세요.
🎯정답
SELECT U.USER_ID, U.NICKNAME, SUM(B.PRICE) AS '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 B.WRITER_ID
HAVING SUM(B.PRICE) >= 700000
ORDER BY SUM(B.PRICE);
❓풀이
- 판매글 테이블의 WRITER_ID와 유저 테이블의 USER_ID 기준으로 두 테이블을 병합
- 판매 상태가 완료인 데이터만 선택하기 위해 판매글 테이블의 STATUS 컬럼에서 'DONE'인 데이터만 선택
- WRITER_ID 기준으로 그룹화, 그룹화 되어진 테이블에서 총 거래금액이 70만원 이상인 데이터만 선택하기 위해 HAVING절에서 조건 추가
'프로그래밍 언어 > 02. SQL' 카테고리의 다른 글
| [SQL] 10. 프로그래머스 LV.3 부서별 평균 연봉 구하기 (0) | 2025.07.20 |
|---|---|
| [SQL] 09. 프로그래머스 LV.3 즐겨찾기가 가장 많은 식당 정보 출력하기 (3) | 2025.07.18 |
| [SQL] 07. 프로그래머스 LV.3 오랜 기간 보호한 동물(2) (1) | 2025.07.18 |
| [SQL] 06. 프로그래머스 LV.3 대여 기록이 존재하는 자동차 리스트 구하기 (2) | 2025.07.17 |
| [SQL] 05. 프로그래머스 LV.3 조건별로 분류하여 주문상태 출력하기 (1) | 2025.07.17 |
