SQL
더보기
[문제]
2022년 1월의 도서 판매 데이터를 기준으로 저자 별, 카테고리 별 매출액(TOTAL_SALES = 판매량 * 판매가) 을 구하여, 저자 ID(AUTHOR_ID), 저자명(AUTHOR_NAME), 카테고리(CATEGORY), 매출액(SALES) 리스트를 출력하는 SQL문을 작성해주세요.
결과는 저자 ID를 오름차순으로, 저자 ID가 같다면 카테고리를 내림차순 정렬해주세요.
내가 접근 했던 방식
1) 2022년 1월에 판매된 데이터를 조회한다
2) 총 판매량을 구한다
3) 원하는 항목들을 조회하고 정렬 한다.
1) 2022년 1월에 판매된 데이터를 조회한다.
SELECT book_id,
sales
from book_sales
where date_format(sales_date,'%Y-%m')='2022-01'
이것을 기반으로 하여 book 테이블과 book_id를 키로 하여 join을 실시하였다.
select a.book_id,
sum(a.sales * b.price) TOTAL_SALES,
b.category,
b.author_id
from
(
SELECT book_id,
sales
from book_sales
where date_format(sales_date,'%Y-%m')='2022-01'
) a left join book b on a.book_id=b.book_id
group by 4, 3
이것을 기반으로 author 테이블과 authou_id 로 join 하여 작가의 아이디와 이름을 가져 온다.
select c.author_id AUTHOR_ID,
d.author_name AUTHOR_NAME,
c.category CATEGORY,
c.total_sales TOTAL_SALES
from
(
select a.book_id,
sum(a.sales * b.price) TOTAL_SALES,
b.category,
b.author_id
from
(
SELECT book_id,
sales
from book_sales
where date_format(sales_date,'%Y-%m')='2022-01'
) a left join book b on a.book_id=b.book_id
group by 4, 3
) c left join author d on c.author_id=d.author_id
order by 1 asc, 3 desc
join의 join의 join 이라 머리가 좀 아팠지만
순서대로 차근차근 읽어나간다면 충분히 작성하고 이해할 수 있는 코드 인듯 하다!
파이썬과 통계학
'TIL' 카테고리의 다른 글
240805 TIL (0) | 2024.08.05 |
---|---|
240802 TIL (SQL With, 통계 분포에 대해) (0) | 2024.08.02 |
240725 팀프로젝트 2일차 (0) | 2024.07.25 |
240724 SQL 및 팀프로젝트 진행 (1) | 2024.07.24 |
240723 TIL (파이썬 Pandas) (0) | 2024.07.23 |