💫 문제



 

💫 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)를 내림차순 정렬

By Dozzing

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다