프로그래머스 - 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에서 필요한 컬럼과 데이터를 모두 뽑았다. 마지막에는 정렬 조건만 추가해 주었다.
반응형