Link
Tables
erDiagram
BOOK {
BOOK_ID INTEGER PK
CATEGORY VARCHAR
AUTHOR_ID INTEGER FK
PRICE INTEGER
PUBLISHED_DATE DATE
}
AUTHOR {
AUTHOR_ID INTEGER PK
AUTHOR_NAME VARCHAR
}
BOOK_SALES {
BOOK_ID INTEGER FK
SALES_DATE DATE "PK(with BOOK_ID)"
SALES INTEGER
}
BOOK ||--|| AUTHOR : Author_info
BOOK ||--o{ BOOK_SALES : Book_Sales
Mermaid
복사
Question
2022년 1월의 도서 판매 데이터를 기준으로 저자 별, 카테고리 별 매출액(TOTAL_SALES = 판매량 * 판매가) 을 구하여, 저자 ID(AUTHOR_ID), 저자명(AUTHOR_NAME), 카테고리(CATEGORY), 매출액(SALES) 리스트를 출력하는 SQL문을 작성해주세요.
결과는 저자 ID를 오름차순으로, 저자 ID가 같다면 카테고리를 내림차순 정렬해주세요.
DataFlow
•
2022년 1월 filter
•
저가, 카테고리 agg 매출액
Answer
WITH date_his AS (
SELECT
BOOK_ID,
SALES
FROM BOOK_SALES
WHERE DATE_FORMAT(SALES_DATE, "%Y-%m") = "2022-01"
),
total_his AS (
SELECT
h.*,
b.CATEGORY,
b.PRICE,
a.AUTHOR_ID,
a.AUTHOR_NAME
FROM date_his h
JOIN BOOK b
ON h.BOOK_ID = b.BOOK_ID
JOIN AUTHOR a
ON b.AUTHOR_ID = a.AUTHOR_ID
),
price AS (
SELECT
AUTHOR_ID,
AUTHOR_NAME,
CATEGORY,
SUM(PRICE * SALES) AS 'TOTAL_SALES'
FROM total_his
GROUP BY AUTHOR_ID, AUTHOR_NAME, CATEGORY
ORDER BY AUTHOR_ID ASC, CATEGORY DESC
)
SELECT * FROM price;
SQL
복사