본문 바로가기
Algorithm/프로그래머스

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

by whdgus928 2023. 4. 27.

https://school.programmers.co.kr/learn/courses/30/lessons/164668

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제

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

 

첫 풀이

1.  서브 쿼리를 만들어 판매완료된 상품들을 추출한다

2. 게시판 테이블과 유저 테이블을 id 기준으로 join 한다

3. 아이디로 그룹화 하고 총 판매가격 기준을 설정한다

 

-- 코드를 입력하세요
SELECT u.USER_ID, u.NICKNAME, sum(PRICE) as TOTAL_SALES
from (select * from USED_GOODS_BOARD where STATUS='DONE') b 
	join USED_GOODS_USER u 
	on b.WRITER_ID=u.USER_ID
group by b.WRITER_ID
having sum(PRICE)>=700000
order by TOTAL_SALES

 

더 나은 답안

1.  서브쿼리를 안만들어도 where에 판매완료 조건을 설정할 수 있다

 

SELECT user_id,
    nickname,
    SUM(price) total_sales
FROM used_goods_board b
JOIN used_goods_user u
    ON writer_id = user_id
WHERE status = "DONE"
GROUP BY user_id
HAVING total_sales >= 700000
ORDER BY total_sales

 

반응형

댓글