43. 조건에 맞는 사용자와 총 거래금액 조회하기
문제 링크:https://school.programmers.co.kr/learn/courses/30/lessons/164668
정답 코드:
SELECT
uu.USER_ID,
uu.NICKNAME,
SUM(ub.PRICE) AS TOTAL_SALES
FROM USED_GOODS_USER uu
INNER JOIN USED_GOODS_BOARD ub
ON ub.WRITER_ID = uu.USER_ID
WHERE STATUS = 'DONE'
GROUP BY uu.USER_ID
HAVING SUM(ub.PRICE) >= 700000
ORDER BY TOTAL_SALES ASC
다르게 푼 코드
SELECT
u.USER_ID,
u.NICKNAME,
s.TOTAL_SALES
FROM USED_GOODS_USER u
INNER JOIN (
SELECT
WRITER_ID,
SUM(PRICE) AS TOTAL_SALES
FROM USED_GOODS_BOARD
WHERE STATUS = 'DONE'
GROUP BY WRITER_ID
HAVING SUM(PRICE) >= 700000
) AS s
ON u.USER_ID = s.WRITER_ID
ORDER BY s.TOTAL_SALES ASC;
문제 풀이때 했던 생각.
| # 테이블에서 완료된 중고 거래의 총금액이 70만 원 이상인 사람 # 회원 ID, 닉네임, 총거래금액 # 총거래금액을 기준으로 오름차순 # 테이블에서 완료된 중고 거래의 총금액이 70만 원 이상인 사람 SELECT WRITER_ID, SUM(PRICE) AS TOTAL_SALES FROM USED_GOODS_BOARD WHERE STATUS = 'DONE' GROUP BY WRITER_ID HAVING SUM(PRICE) >= 700000 처음엔 where 서브쿼리를 사용해야 했나 고민했었으나 (결국 필요한 값은 TOTAL_SALES 이였으니) 허나 where절 서브쿼리는 어디까지나 비교하기 위한 용도로 즉, 이 행을 남길지 말지 판단하는 일종의 필터링이다. TOTAL_SALES 를 출력을 해야하는 문제인만큼 where절 보단 from절로 임시테이블을 만들어 출력하는게 더 맞는 풀이다. |
https://papago9211.tistory.com/96
코드카타 Level 3 43~45
43. 조건에 맞는 사용자와 총 거래금액 조회하기문제 링크:https://school.programmers.co.kr/learn/courses/30/lessons/164668정답 코드:SELECT uu.USER_ID, uu.NICKNAME, SUM(ub.PRICE) AS TOTAL_SALESFROM USED_GOODS_USER uuINNER JOIN USED_GO
papago9211.tistory.com
'E.코드카타 > 다르게 풀어보기' 카테고리의 다른 글
| join문을 서브쿼리로 풀어보자 1 (1) | 2026.01.09 |
|---|
