문제
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
'SQL > SQL test' 카테고리의 다른 글
[프로그래머스] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (0) | 2023.10.09 |
---|---|
[프로그래머스] 즐겨찾기가 가장 많은 식당 정보 출력하기 (0) | 2023.10.07 |
[프로그래머스] 오프라인/온라인 판매 데이터 통합하기 (0) | 2023.10.04 |
[프로그래머스] 조건에 부합하는 중고거래 댓글 조회하기 (0) | 2023.10.04 |
[프로그래머스] 서울에 위치한 식당 목록 출력하기 (0) | 2023.10.04 |