문제가 원하는 것은
1. 중고 거래 금액이 총 70만원을 넘어야 하며
2. 총 거래 금액으로 오름차순 정렬을 해야 한다.
위 테이블을 보고 차근차근 sql을 만들어 보겠다
우선 1. 중고 거래 금액이 총 70만원을 넘어야 함으로 각 회원들의 중고 거래 금액을 알아야 하며, 중고 거래 상태가 완료된 행들의 금액만을 합하여야 한다.
따라서 이를 sql로 만들면 아래와 같이 된다.
FROM USED_GOODS_BOARD A INNER JOIN USED_GOODS_USER B ON A.WRITER_ID = B.USER_ID
WHERE A.STATUS = 'DONE'
GROUP BY B.USER_ID HAVING SUM(A.PRICE) >= 700000
위의 sql을 보면 두 개의 테이블의 정보가 필요함으로 JOIN을 통하여 조회를 하는데 두 테이블에 모두 존재하는 데이터만 필요함으로 INNER JOIN을 사용하고 두 테이블의 공통되는 유저 아이디와 작성자 아이디가 동일한 데이터 행만을 조회한다.
또한 WHERE절을 사용하여 중고 거래가 완료된 데이터 행들만 조회하며, GROUP BY절을 사용하여 사용자 아이디를 가지고 그룹화하고 HAVING을 통하여 한 회원의 총 중고거래 금액이 70만원 이상인 데이터 행만을 조회한다.
그다음 2. 총 거래 금액으로 오름차순 정렬을 해야 함으로
ORDER BY SUM(A.PRICE) ASC;
ORDER BY절을 가지고 총금액에 대해 오름 차순 정렬을 하고
이를 모두 합친 sql은 아래와 같이 나오게 된다.
SELECT B.USER_ID, B.NICKNAME, SUM(A.PRICE) TOTAL_SALES
FROM USED_GOODS_BOARD A INNER JOIN USED_GOODS_USER B ON A.WRITER_ID = B.USER_ID
WHERE A.STATUS = 'DONE'
GROUP BY B.USER_ID HAVING SUM(A.PRICE) >= 700000
ORDER BY SUM(A.PRICE) ASC;
'코딩테스트' 카테고리의 다른 글
프로그래머스 대여 기록이 존재하는 자동차 리스트 구하기 (0) | 2023.09.05 |
---|---|
프로그래머스 즐겨찾기가 가장 많은 식당 정보 출력하기 (2) | 2023.09.04 |
프로그래머스 조건별로 분류하여 주문상태 출력하기 (0) | 2023.09.04 |
프로그래머스 카테고리 별 도서 판매량 집계하기 (0) | 2023.09.03 |
프로그래머스 오랜 기간 보호한 동물(2) (0) | 2023.09.02 |