문제
USED_GOODS_BOARD와 USED_GOODS_USER 테이블에서 완료된 중고 거래의 총금액이 70만 원 이상인 사람의 회원 ID, 닉네임, 총거래금액을 조회하는 SQL문을 작성해주세요. 결과는 총거래금액을 기준으로 오름차순 정렬해주세요.
내 생각
1. 회원 ID, 닉네임, 총거래금액을 조회 : SELECT B.USER_ID, B.NICKNAME, SUM(PRICE) AS TOTAL_SALES
2. USED_GOODS_BOARD와 USED_GOODS_USER 테이블에서 : 두 테이블을 사용자 ID를 기준으로 조인 (JOIN)
3. 완료된 중고 거래의 : WHERE STATUS = 'DONE'
4. 사용자 ID를 기준으로 그룹화 : 각 사용자에 대한 거래를 합산하기 위해
5. 총금액이 70만 원 이상인 사람 : HAVING TOTAL_SALES >= 700000
→ GROUP BY 절 다음에 사용(그룹화된 결과에 대한 조건)
6. 결과는 총거래금액을 기준으로 오름차순 정렬 : ORDER BY TOTAL_SALES
** 참고
1. FROM : SQL은 구문이 들어오면 테이블을 가장 먼저 확인 (테이블명)
2. WHERE : 테이블에서 주어진 조건에 맞는 데이터들을 추출
3. GROUP BY : 공통적인 데이터들끼리 묶어 그룹을 만들어줌
4. HAVING : 공통적인 데이터들이 묶여진 그룹 중, 주어진 주건에 맞는 그룹들을 추출
5. SELECT : 최종적으로 추출된 데이터들을 조회
6. ORDER BY : 추출된 데이터들을 정렬
* SELECT 에서 만들어진 Alias(AS) 는 ORDER BY 구문에서만 사용 가능
* Join
ON : JOIN 전에 조건을 필터링
WHERE : JOIN 후에 조건을 필터링 (join과 모든 조건이 끝난 후, where로 추가 조건)
내 코드
SELECT B.USER_ID, B.NICKNAME, SUM(PRICE) AS TOTAL_SALES
FROM USED_GOODS_BOARD AS A
JOIN USED_GOODS_USER AS B
ON A.WRITER_ID = B.USER_ID
WHERE STATUS = 'DONE'
GROUP BY A.WRITER_ID
HAVING TOTAL_SALES >= 700000
ORDER BY TOTAL_SALES
'Algorithm > 코딩테스트 (SQL)' 카테고리의 다른 글
[프로그래머스][String, Date] 조건에 맞는 사용자 정보 조회하기 (1) | 2024.01.03 |
---|---|
[프로그래머스][String, Date] 루시와 엘라 찾기 (MySQL) (0) | 2023.12.29 |
[프로그래머스][GROUP BY] 카테고리 별 도서 판매량 집계하기 (0) | 2023.12.24 |
[프로그래머스][GROUP BY] 즐겨찾기가 가장 많은 식당 정보 출력하기 (MySQL) (0) | 2023.12.20 |
[프로그래머스][JOIN] 오랜 기간 보호한 동물(1) (MySQL) (0) | 2023.12.16 |
댓글