[프로그래머스] 조건에 맞는 사용자와 총 거래금액 조회하기

yannie·2024년 10월 2일
0

[문제]

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

[내가 푼 풀이(정답)]

-- 완료된 중고 거래의 총 금액이 70만원 이상인 사람
SELECT
    USER_ID,
    NICKNAME,
    SUM(B.PRICE) AS TOTAL_SALES
FROM USED_GOODS_USER U
INNER JOIN USED_GOODS_BOARD B
ON U.USER_ID = B.WRITER_ID
WHERE B.STATUS = 'DONE'
GROUP BY USER_ID
HAVING SUM(PRICE) >= 700000
ORDER BY TOTAL_SALES
;

[코드리뷰]

  • USER_ID와 WRITER_ID를 기준으로 두 테이블 결합
  • GROUP BY를 사용해 USER_ID를 기준으로 그룹화 = USER_ID별로 그룹화
  • HAVING절을 사용해 USER_ID로 그룹화되어 있는 데이터들의 PRICE의 합계를 구한다.
  • WHERE절을 통해 완료된 중고 거래 필터링

기억해!

HAVING절은 반드시 GROUP BY로 그룹화된 컬럼을 대상으로 한다.

  • SUM함수를 기준으로 정렬 -> WHERE절을 사용할 수 없기 때문에 HAVING절을 사용한다.

0개의 댓글