문제
2022년 1월의 도서 판매 데이터를 기준으로 저자 별, 카테고리 별 매출액(TOTAL_SALES = 판매량 * 판매가) 을 구하여, 저자 ID(AUTHOR_ID), 저자명(AUTHOR_NAME), 카테고리(CATEGORY), 매출액(SALES) 리스트를 출력하는 SQL문을 작성해주세요.
결과는 저자 ID를 오름차순으로, 저자 ID가 같다면 카테고리를 내림차순 정렬해주세요.
💡 조건
sql 코드
select a.author_id, a.author_name, b.category, sum(price*sales)
from book b left join (select book_id, sum(sales) as sales
from book_sales
where sales_date like '2022-01%'
group by book_id) bs on b.book_id = bs.book_id
join author a on b.author_id = a.author_id
group by category, author_id
order by a.author_id asc, b.category desc
BOOK_SALES
테이블로 해결할 수 있는 조건들을 작성했다. 얻고자하는 판매량을 서브쿼리에서 가져와서 판매가와 곱해주는 방식으로 문제를 해결했다 from book b left join (select book_id, sum(sales) as sales
from book_sales
where sales_date like '2022-01%'
group by book_id) bs on b.book_id = bs.book_id
SAELS_DATE
로 한번 join 해주고, AUTHOR
도 join 해주었다 select a.author_id, a.author_name, b.category, sum(price*sales)
from book b left join (select book_id, sum(sales) as sales
from book_sales
where sales_date like '2022-01%'
group by book_id) bs on b.book_id = bs.book_id
join author a on b.author_id = a.author_id
group by category, author_id
group by를 해준 이유
조건에서 저자별, 카테고리별 매출액을 구하라고 했음. 따라서 저자명이든 저자ID든 저자를 알 수 있는 것과 카테고리 두가지로 묶어서 group by를 해주었다.
order by a.author_id asc, b.category desc