본문 바로가기
SQL/SQL test

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

by ISLA! 2023. 10. 6.

 

문제

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

 

풀이

  • 이 문제에서 먼저 고려할 점은, '완료'된 중고거래와 '회원' 기준 총 거래액의 계산이다.
  • 먼저, 완료된 중고거래만 필터링 하기 위해 where 절에 조건을 걸어준다.
  • 그리고 회원 별로 총 거래액을 계산하기 위해 user_id 를 기준으로 Group by 하여, 총 거래액을 계산한다.
  • 이때, 닉네임도 출력해야하므로, 고윳값이겠지만 max()를 사용해서 닉네임도 집계함수로 출력했다.
  • 최종적으로 총 거래액 70만원이 넘어야하는데 이 조건은 group by 다음에 having 절에 기입해준다.(위치 중요!)
  • 마지막으로 order by 로 정렬하며 마무리!
select B.USER_ID, max(NICKNAME) as NICKNAME, sum(A.PRICE) as TOTAL_SALES
from USED_GOODS_BOARD as A
left join USED_GOODS_USER as B on A.WRITER_ID = B.USER_ID
where A.STATUS = 'DONE'
group by 1
having TOTAL_SALES >= 700000
order by 3

 

728x90