[프로그래머스] SQL/정답 노트

[lv3] 저자 별 카테고리 별 매출액 집계하기

SH3542 2024. 10. 8. 15:46

https://school.programmers.co.kr/learn/courses/30/lessons/144855

인덱스가 걸려있는 경우 날짜 비교에서 BETWEEN이 LIKE보다 권장된다고 한다. LIKE는 모든 범위를 스캔하기 때문이다.

 

SELECT AUTHOR_ID, AUTHOR_NAME, CATEGORY, SUM(PRICE * SALES) AS TOTAL_SALES
FROM (
    SELECT BOOK_ID, CATEGORY, AUTHOR_ID, AUTHOR_NAME, PRICE
    FROM BOOK 
    JOIN AUTHOR USING(AUTHOR_ID)
) B 
JOIN (
    SELECT BOOK_ID, SALES
    FROM BOOK_SALES
    WHERE SALES_DATE LIKE '2022-01%'
) S USING(BOOK_ID)
GROUP BY 1, 3
ORDER BY 1, 3 DESC;