A. 금일 학습내용
1. SQL 코드카타 문제: 3개 테이블을 이용한 작가별, 카테고리별 총판매량 출력하기
- 처음 풀었던 코드이다.
- 어떤 문제가 있는 것인지 몰랐다.
- 3개의 테이블을 한 번에 사용하는 것은 처음이라 구조적 문제라고 생각하였다.
-- BOOK 도서정보 AUTHOR 저자 정보 BOOK SALES 판매정보
SELECT B.AUTHOR_ID
, A.AUTHOR_NAME
, CATEGORY
, B.PRICE*S.SALES AS SALES
FROM (BOOK B
INNER JOIN AUTHOR A
ON B.AUTHOR_ID = A.AUTHOR_ID)
RIGHT JOIN
BOOK_SALES S
ON B.BOOK_ID = S.BOOK_ID
WHERE DATE_FORMAT(S.SALES_DATE,'%Y-%m')='2022-01'
GROUP BY AUTHOR_NAME
, CATEGORY
ORDER BY A.AUTHOR_ID
,B.CATEGORY DESC
- 정답으로 인정된 코드는 아래와 같다.
- 총 판매량을 구하기 위해서는 (1권의 책값 X 판매량) 을 모두 더해야하는 거였다.
- 작가별, 카테고리별 책의 총 판매량을 구하는 문제였기 때문에, 한 작가가 같은 카테고리의 책을 여러 권 집필했을 가능성 또한 고려해야 한다는 것을 너무 늦게 알았다.
- 각 테이블의 구성과 각 데이터의 조합이 어떤 것을 의미하는지 이해하지 못하고 문제부터 풀기 시작한 것이 문제였다.
- 칼럼의 구성 요소와 그 구조를 먼저 보고, 문제를 읽고 구조화시킨 후에 코드를 작성하는 버릇을 들여야겠다.
SELECT B.AUTHOR_ID
, A.AUTHOR_NAME
, CATEGORY
, SUM(B.PRICE*S.SALES) AS TOTAL_SALES
FROM (BOOK B
INNER JOIN AUTHOR A
ON B.AUTHOR_ID = A.AUTHOR_ID)
RIGHT JOIN
BOOK_SALES S
ON B.BOOK_ID = S.BOOK_ID
WHERE DATE_FORMAT(S.SALES_DATE,'%Y-%m')='2022-01'
GROUP BY AUTHOR_NAME
, CATEGORY
ORDER BY A.AUTHOR_ID
,B.CATEGORY DESC
'Today I Learned' 카테고리의 다른 글
[내일배움캠프_데이터분석] 7주차 월요일 TIL _ ADsP 3과목 정리 (0) | 2024.08.05 |
---|---|
[내일배움캠프_데이터분석] 6주차 금요일 TIL _ 기초통계학 (0) | 2024.08.02 |
[내일배움캠프_데이터분석] 6주차 수요일 TIL (0) | 2024.07.31 |
[내일배움캠프_데이터분석] 6주차 화요일 TIL _ zip () (0) | 2024.07.30 |
[내일배움캠프_데이터분석] 6주차 월요일 TIL _ 가상환경(2) (0) | 2024.07.29 |