본문 바로가기

프로그래머스(Oracle)

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

728x90

코드 힌트

  1. 거래 완료된 기록만 조회:
    • WHERE STATUS = 'DONE' 조건을 사용하여 거래가 완료된 상품들만 조회하고, 미완료된 거래는 제외합니다.
    • 거래가 완료된 상태만 합산하여 총 판매 금액을 계산합니다.
  2. 사용자별 판매 금액 계산:
    • GROUP BY U.USER_ID, U.NICKNAME를 사용하여 각 사용자별로 판매한 금액을 합산합니다.
    • 이때, SUM(B.PRICE)를 통해 각 사용자가 완료한 거래들의 총 판매 금액을 구합니다.
  3. 판매 금액 필터링:
    • HAVING SUM(B.PRICE) >= 700000 조건을 사용하여 700,000원 이상의 판매 금액을 달성한 사용자만 결과에 포함시킵니다.
    • HAVING은 집계 함수 이후의 필터링에 사용됩니다.
  4. 총 판매 금액에 따른 정렬:
    • ORDER BY TOTAL_SALES로 결과를 총 판매 금액 순서로 오름차순 정렬합니다.

 


정답은 더보기 클릭

더보기
더보기
SELECT U.USER_ID, U.NICKNAME, SUM(B.PRICE) AS TOTAL_SALES  -- 사용자 ID, 닉네임, 총 판매 금액을 선택합니다.
  FROM USED_GOODS_BOARD B  -- 중고 상품 게시판 테이블을 참조합니다.
  JOIN USED_GOODS_USER U  -- 사용자 정보를 담고 있는 사용자 테이블과 JOIN을 수행합니다.
  ON B.WRITER_ID = U.USER_ID  -- 게시판 작성자 ID와 사용자 ID가 일치하는 행들을 연결합니다.
  WHERE STATUS = 'DONE'  -- 거래 상태가 완료된 ('DONE') 레코드만 필터링합니다.
  GROUP BY U.USER_ID, U.NICKNAME  -- 사용자 ID와 닉네임을 기준으로 그룹화하여 사용자별 총 판매 금액을 집계합니다.
  HAVING SUM(B.PRICE) >= 700000  -- 총 판매 금액이 700,000 이상인 사용자만 선택합니다.
  ORDER BY TOTAL_SALES  -- 총 판매 금액을 기준으로 오름차순으로 정렬합니다.
728x90