| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 |
- code
- 머신러닝
- numpy
- 파이썬
- 시각화
- pandas
- 불리언
- 데이터분석
- 데이터전처리
- mysql
- 아마존
- 데이터 전처리
- machinelearning
- dataframe
- 캐글
- 데이터과학
- EDA
- data science
- 데이터구조
- 데이터사이언스
- 코테
- Data Analysis
- Python
- 코딩테스트
- 프로그래머스
- kaggle
- 전처리
- 연산자
- SQL
- get_dummies
- Today
- Total
Road to Data Scientist
[프로그래머스] 조건에 맞는 사용자와 총 거래금액 조회하기 Lv.3 본문
조건에 맞는 사용자와 총 거래금액 조회하기
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
'코딩 테스트 > SQL' 카테고리의 다른 글
| [프로그래머스] 오랜 기간 보호한 동물(1) Lv.3 (0) | 2025.11.22 |
|---|---|
| [프로그래머스] 조건별로 분류하여 주문상태 출력하기 Lv.3 (0) | 2025.11.14 |
| [프로그래머스] 카테고리 별 도서 판매량 집계하기 Lv.3 (0) | 2025.11.02 |
| [프로그래머스] 노선 별 평균 역사이 거리 조회하기 Lv.2 (1) | 2025.10.26 |
| [프로그래머스] 부모의 형질을 모두 가지는 대장균 찾기 Lv.2 (0) | 2025.02.16 |