프로그래머스 - SQL

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

baefrica 2023. 9. 28. 19:16
반응형

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

 

프로그래머스

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

programmers.co.kr

 


💯 최종 코드

WITH
TABLE_01 AS
(
SELECT B.AUTHOR_ID, B.CATEGORY, SUM(SALES) * PRICE AS TOTAL_SALES
FROM BOOK AS B
JOIN BOOK_SALES AS S
ON B.BOOK_ID = S.BOOK_ID
WHERE S.SALES_DATE LIKE '2022-01%'
GROUP BY B.BOOK_ID, B.AUTHOR_ID, B.CATEGORY
)

,

TABLE_02 AS
(
SELECT T1.AUTHOR_ID, A.AUTHOR_NAME, T1.CATEGORY, SUM(T1.TOTAL_SALES)
FROM TABLE_01 AS T1
JOIN AUTHOR AS A
ON T1.AUTHOR_ID = A.AUTHOR_ID
GROUP BY T1.AUTHOR_ID, T1.CATEGORY
)

SELECT *
FROM TABLE_02
ORDER BY AUTHOR_ID, CATEGORY DESC;

💡 깨달은 점

1. WITH 절

  • 단계별로 테이블을 만들어나가면서 JOIN을 시키는 형태이다.
  • 차근차근 두 개의 테이블을 JOIN 하면서 필요한 데이터들을 뽑아나가는 식으로 코드를 구현할 때 적합하다.
  • 여러 STEP으로 만들고, 나는 마지막 STEP에서 필요한 컬럼과 데이터를 모두 뽑았다. 마지막에는 정렬 조건만 추가해 주었다.
반응형