Programmers lv4. 저자별 카테고리별 매출액 집계하기
https://school.programmers.co.kr/learn/courses/30/lessons/144856
2022년 1월의 도서 판매 데이터를 기준으로 저자 별, 카테고리 별 매출액(TOTAL_SALES = 판매량 * 판매가) 을 구하여, 저자 ID(AUTHOR_ID), 저자명(AUTHOR_NAME), 카테고리(CATEGORY), 매출액(SALES) 리스트를 출력하는 SQL문을 작성해주세요.
결과는 저자 ID를 오름차순으로, 저자 ID가 같다면 카테고리를 내림차순 정렬해주세요.
주어진 table은 3개


WITH jan_book AS (
SELECT book_id, SUM(sales) AS total
FROM book_sales
WHERE sales_date LIKE '2022-01%'
GROUP BY book_id
),
jan_total AS (
SELECT b.category, b.author_id, (b.price * j.total) AS total_sales
FROM book b
JOIN jan_book j ON j.book_id = b.book_id
)
SELECT jb.author_id, a.author_name, jb.category, jb.total_sales
FROM jan_total jb
JOIN author a ON jb.author_id = a.author_id
GROUP BY jb.author_id, jb.category
ORDER BY jb.author_id , jb.category DESC;
WITH jan_book AS (
SELECT book_id, SUM(sales) AS total
FROM book_sales
WHERE sales_date LIKE '2022-01%'
GROUP BY book_id
),
jan_total AS (
SELECT b.category, b.author_id, sum(b.price * j.total) AS total_sales
FROM book b
JOIN jan_book j ON j.book_id = b.book_id
GROUP BY b.category, b.author_id
)
SELECT jb.author_id, a.author_name, jb.category, jb.total_sales
FROM jan_total jb
JOIN author a ON jb.author_id = a.author_id
GROUP BY jb.author_id, jb.category
ORDER BY jb.author_id , jb.category DESC;
Jan_total 에서 저자명별, 카테고리명별로 group by하고, 묶인 그룹별로 매출액을 sum해야 제대로된 값이 나온다. !!!!
나는
1. 2022-01 판매량
2.카테고리별, 저자id별 매출액 (판매량 *가격)
3.저자명까지 합쳐서 출력한 매출액 .
이렇게 3개의 단계로 나누어 쿼리를 추출했고,
두번째 쿼리에서 오류가 난 것이다.
카테고리별, 저자id별로 추출하기로 했으면, 그에 맞는 group by와 집계함수 sum 을 써야했다.
내가 단계를 나눠서 쿼리를 짜기로했으면, 스텝별로 어떤 정보를 추출할 것인지 명확히 텍스트로 표현후 쿼리를 짜야겠다.
막연히 생각만하고 짜니, 그룹별로 매출액을 뽑기로 했으면서 group by 와 집계함수를 쓰지 않아서 오답이 나온 것 같다.
오답하면서 돌이켜보면 이게 되게 당연한 소리면서도 막상 코드를 짜려고하면 잘 안되나보다 ㅎ;