💫 문제
💫 CODE
SELECT a.AUTHOR_ID, b.AUTHOR_NAME, a.CATEGORY, SUM(c.SALES * a.PRICE) AS TOTAL_SALES
FROM BOOK a
JOIN AUTHOR b ON a.AUTHOR_ID = b.AUTHOR_ID
JOIN BOOK_SALES c ON a.BOOK_ID = c.BOOK_ID
WHERE c.SALES_DATE >= '2022-01-01' AND c.SALES_DATE < '2022-02-01'
GROUP BY b.AUTHOR_ID, b.AUTHOR_NAME, a.CATEGORY
ORDER BY b.AUTHOR_ID ASC, a.CATEGORY DESC;
💫 풀이 조건
1. 2022년 1월의 도서 판매 데이터 기준
2. 저자 ID(AUTHOR_ID), 저자명(AUTHOR_NAME), 카테고리(CATEGORY), 매출액(TOTAL_SALES = 판매량 * 판매가) 조회
3. 저자 ID를 오름차순으로, 저자 ID가 같다면 카테고리를 내림차순 정렬
💫 풀이
1. SELECT a.AUTHOR_ID, b.AUTHOR_NAME, a.CATEGORY, SUM(c.SALES * a.PRICE) AS TOTAL_SALES
- BOOK 테이블의 저자 ID(AUTHOR_ID), AUTHOR 테이블의 저자명(AUTHOR_NAME), BOOK 테이블의 카테고리(CATEGORY), 매출액(TOTAL_SALES = BOOK_SALES 테이블의 판매량(SALES) * BOOK 테이블의 판매가(PRICE)) 조회
- AS를 이용하여 SUM(c.SALES * a.PRICE)의 별칭을 TOTAL_SALES로 지정
2. FROM BOOK a
- BOOK 테이블의 별칭을 a로 지정
3. JOIN AUTHOR b ON a.AUTHOR_ID = b.AUTHOR_ID
- JOIN을 이용하여 AUTHOR 테이블 조인
- AUTHOR 테이블의 별칭을 b로 지정
- a.AUTHOR_ID = b.AUTHOR_ID 공유하고있는 컬럼
4. JOIN BOOK_SALES c ON a.BOOK_ID = c.BOOK_ID
- JOIN을 이용하여 BOOK_SALES 테이블 조인
- BOOK_SALES 테이블의 별칭을 c로 지정
- a.BOOK_ID = c.BOOK_ID 공유하고있는 컬럼
5. WHERE c.SALES_DATE >= '2022-01-01' AND c.SALES_DATE < '2022-02-01'
- 조건 : BOOK_SALES 테이블의 판매일(SALES_DATE)이 '2022-01-01' 이상, '2022-02-01'미만인 경우
6. GROUP BY b.AUTHOR_ID, b.AUTHOR_NAME, a.CATEGORY
- 저자 ID(AUTHOR_ID), AUTHOR 테이블의 저자명(AUTHOR_NAME), BOOK 테이블의 카테고리(CATEGORY) 를 기준으로 집계
7. ORDER BY b.AUTHOR_ID ASC, a.CATEGORY DESC
- BOOK 테이블의 저자 ID(AUTHOR_ID)를 기준으로 오름차순, BOOK 테이블의 저자 ID(AUTHOR_ID)가 같다면 BOOK 테이블의 카테고리(CATEGORY)를 내림차순 정렬