728x90
❓ Question
❗ Answer
# join key : book.author_id = author.author_id / book.book_id = book_sales.book_id
# 조건 : DATE_FORMAT(book_sales.sales_date,'%Y-%m') = '202201'
SELECT author.author_id, author.author_name, b_s.category, SUM(b_s.price*b_s.sales)
FROM author
INNER JOIN (SELECT book.author_id, book.category, book.price, sales.sales
FROM book
INNER JOIN book_sales sales
ON book.book_id = sales.book_id
WHERE sales.sales_date LIKE '2022-01%') b_s
ON author.author_id = b_s.author_id
GROUP BY author.author_id, b_s.category
ORDER BY author.author_id, b_s.category DESC;
📌 Discussion
- sub-query inline view로 테이블을 만들어 join
- 모든 레코드를 불러온 후 GROUP BY 중첩 후 SUM으로 집계
'SQL 문제풀이' 카테고리의 다른 글
[프로그래머스 SQL] LV.4 그룹별 조건에 맞는 식당 목록 출력하기 (0) | 2023.08.11 |
---|---|
[프로그래머스 SQL] LV.3 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (0) | 2023.08.11 |
[프로그래머스 SQL] LV.3 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (0) | 2023.08.11 |
[프로그래머스 SQL] LV.4 주문량이 많은 아이스크림들 조회하기 (0) | 2023.08.06 |
[프로그래머스 SQL] LV.1 자동차 대여 기록에서 장기/단기 대여 구분하기 (0) | 2023.08.06 |