본문 바로가기

프로그래머스(Oracle)

[프로그래머스 (Oracle)] 저자 별 카테고리 별 매출액 집계하기

728x90

코드 힌트

  1. 조인 구조:
    • BOOK 테이블과 AUTHOR 테이블을 AUTHOR_ID로 조인하여 저자의 정보를 가져옵니다.
    • BOOK_SALES 테이블과 BOOK 테이블을 BOOK_ID로 조인하여 판매 정보와 책의 정보를 연결합니다.
  2. 날짜 필터링:
    • TO_CHAR(S.SALES_DATE, 'YYYY-MM') = '2022-01'를 통해 2022년 1월의 판매 기록만 가져옵니다.
  3. 매출 계산:
    • SUM(B.PRICE * S.SALES)는 책의 가격과 판매 수량을 곱한 후, 각 저자와 카테고리별로 총 매출을 계산합니다.
  4. 그룹화:
    • GROUP BY A.AUTHOR_ID, A.AUTHOR_NAME, B.CATEGORY를 통해 저자와 카테고리별로 결과를 그룹화하여 매출을 집계합니다.
  5. 정렬:
    • ORDER BY A.AUTHOR_ID, B.CATEGORY DESC로 저자 ID를 기준으로 오름차순, 카테고리를 기준으로 내림차순 정렬하여 결과를 정리합니다.

 


정답은 더보기 클릭

더보기
-- 저자 ID, 저자 이름, 책의 카테고리, 총 매출을 조회합니다.
SELECT A.AUTHOR_ID, A.AUTHOR_NAME, B.CATEGORY, SUM(B.PRICE * S.SALES) AS TOTAL_SALES
  -- BOOK 테이블과 AUTHOR 테이블을 저자 ID를 기준으로 조인합니다.
  FROM BOOK B
   JOIN AUTHOR A
   ON B.AUTHOR_ID = A.AUTHOR_ID
   -- BOOK_SALES 테이블과 BOOK 테이블을 책 ID를 기준으로 조인합니다.
   JOIN BOOK_SALES S
   ON S.BOOK_ID = B.BOOK_ID
  -- 판매일이 2022년 1월인 경우만 조회합니다.
  WHERE TO_CHAR(S.SALES_DATE, 'YYYY-MM') = '2022-01'
  -- 저자 ID와 카테고리별로 그룹핑하여 각 그룹의 총 매출을 계산합니다.
  GROUP BY A.AUTHOR_ID, A.AUTHOR_NAME, B.CATEGORY
  -- 저자 ID를 기준으로 오름차순, 카테고리를 기준으로 내림차순으로 정렬합니다.
  ORDER BY A.AUTHOR_ID, B.CATEGORY DESC;
728x90