728x90
KDT 실무형 스프링 백엔드 엔지니어 양성과정 6기 | SQL CODEKATA
📖 카테고리 별 도서 판매량 집계하기
🏷 관련 주제 : GROUP BY SUM()

✔ (Oracle) Solution with GROUP BY & SUM()
SELECT B.CATEGORY
, SUM(S.SALES) "TOTAL_SALES"
FROM BOOK B
, BOOK_SALES S
WHERE B.BOOK_ID = S.BOOK_ID
AND TO_CHAR(S.SALES_DATE, 'YYYY-MM') = '2022-01'
GROUP BY B.CATEGORY
ORDER BY B.CATEGORY;
실행 결과

✔ (MySQL) Solution with GROUP BY & SUM()
SELECT B.CATEGORY
, SUM(S.SALES) TOTAL_SALES
FROM BOOK B
, BOOK_SALES S
WHERE B.BOOK_ID = S.BOOK_ID
AND DATE_FORMAT(S.SALES_DATE, '%Y-%m') = '2022-01'
GROUP BY B.CATEGORY
ORDER BY B.CATEGORY;
실행 결과

💥 오늘 만난 문제 & 나의 시도 💦 & 해결 방법 👍
📌 오늘 만난 문제 : 2022년 1월의 카테고리 별 도서 판매량을 합산하고, 카테고리(CATEGORY), 총 판매량(TOTAL_SALES) 리스트를 출력하는 SQL문을 작성해주세요.
결과는 카테고리명을 기준으로 오름차순 정렬해주세요.
1. BOOK_ID 칼럼으로 도서 정보 테이블(BOOK)과 판매 정보 테이블(BOOK_SALE)을 조인하여 카테고리, 판매일, 판매량 조회하기
- Oracle & MySQL
SELECT B.CATEGORY , S.SALES_DATE , S.SALES FROM BOOK B , BOOK_SALES S WHERE B.BOOK_ID = S.BOOK_ID;실행 결과

2. 판매일이 2022년 1월인 인스턴스만 조회하기
- Oracle
SELECT B.CATEGORY , S.SALES_DATE , S.SALES FROM BOOK B , BOOK_SALES S WHERE B.BOOK_ID = S.BOOK_ID AND TO_CHAR(S.SALES_DATE, 'YYYY-MM') = '2022-01'; - MySQL
SELECT B.CATEGORY , S.SALES_DATE , S.SALES FROM BOOK B , BOOK_SALES S WHERE B.BOOK_ID = S.BOOK_ID AND DATE_FORMAT(S.SALES_DATE, '%Y-%m') = '2022-01';실행 결과

3. 카테고리로 GROUP BY 해서 카테고리와 카테고리별 총 판매량 조회하기
- Oracle
SELECT B.CATEGORY , SUM(S.SALES) "TOTAL_SALES" FROM BOOK B , BOOK_SALES S WHERE B.BOOK_ID = S.BOOK_ID AND TO_CHAR(S.SALES_DATE, 'YYYY-MM') = '2022-01' GROUP BY B.CATEGORY; - MySQL
SELECT B.CATEGORY , SUM(S.SALES) TOTAL_SALES FROM BOOK B , BOOK_SALES S WHERE B.BOOK_ID = S.BOOK_ID AND DATE_FORMAT(S.SALES_DATE, '%Y-%m') = '2022-01' GROUP BY B.CATEGORY;실행 결과

4. 카테고리를 기준으로 오름차순 정렬하기
- Oracle
SELECT B.CATEGORY , SUM(S.SALES) "TOTAL_SALES" FROM BOOK B , BOOK_SALES S WHERE B.BOOK_ID = S.BOOK_ID AND TO_CHAR(S.SALES_DATE, 'YYYY-MM') = '2022-01' GROUP BY B.CATEGORY ORDER BY B.CATEGORY; - MySQL
SELECT B.CATEGORY , SUM(S.SALES) TOTAL_SALES FROM BOOK B , BOOK_SALES S WHERE B.BOOK_ID = S.BOOK_ID AND DATE_FORMAT(S.SALES_DATE, '%Y-%m') = '2022-01' GROUP BY B.CATEGORY ORDER BY B.CATEGORY;실행 결과

💬 무엇을 새롭게 알았는지
GROUP BY하는 쿼리를 작성해 보았다.
728x90