SQL 고득점 Kit - 7.21

김동현·2024년 7월 21일

SQL 고득점 Kit

목록 보기
6/56

GROUP BY - 조건에 맞는 사용자와 총 거래 금액 조회하기

문제

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

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

풀이

WITH SALES AS (
    SELECT *, 
        SUM(b.PRICE) AS TOTAL_SALES
    FROM 
        USED_GOODS_BOARD b
    WHERE 
        b.STATUS = 'DONE'
    GROUP BY 
        b.WRITER_ID
)

SELECT 
    u.USER_ID, 
    u.NICKNAME, 
    s.TOTAL_SALES
FROM 
    SALES s
LEFT JOIN
    USED_GOODS_USER u
ON 
    s.WRITER_ID = u.USER_ID
WHERE 
    s.TOTAL_SALES >= 700000
ORDER BY 
    s.TOTAL_SALES

리뷰

  • USED_GOODS_BOARD 테이블에서 필요한 부분을 뽑아내는 쿼리를 작성하는데 이번에는 WIHT구문을 사용했다.
  • WITH구문은 임시 결과 집합을 생성하여 복잡한 쿼리를 쉽게 작성할 수 있게 해주는데 현재 생각하는 방식이 이것뿐이라 바로 적용하였다.
  • USED_GOODS_USER 테이블을 조인해서 문제 요구사항에 맞게 출력할 수 있는 테이블 형태 생성.

(이것도 너무 긴 거 같음... 더 좋은 코드가 있는지 이번에는 G씨를 사용하지 않고 나중에 수정하는 방향으로 가보겠음.)

GitHub

https://github.com/lasentia/SQL_Study/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/3/164668.%E2%80%85%EC%A1%B0%EA%B1%B4%EC%97%90%E2%80%85%EB%A7%9E%EB%8A%94%E2%80%85%EC%82%AC%EC%9A%A9%EC%9E%90%EC%99%80%E2%80%85%EC%B4%9D%E2%80%85%EA%B1%B0%EB%9E%98%EA%B8%88%EC%95%A1%E2%80%85%EC%A1%B0%ED%9A%8C%ED%95%98%EA%B8%B0

profile
'The best way to get started is to quit talking and begin doing.'

0개의 댓글