[SQL] 프로그래머스 SQL 고득점 Kit_GROUP BY (19/24)

餘園·2025년 7월 31일

SQL 고득점 Kit

목록 보기
70/109
post-thumbnail

저자 별 카테고리 별 매출액 집계하기 (Level 4)

2022년 1월의 도서 판매 데이터를 기준으로 저자 별, 카테고리 별 매출액(TOTAL_SALES = 판매량 * 판매가) 을 구하여, 저자 ID(AUTHOR_ID), 저자명(AUTHOR_NAME), 카테고리(CATEGORY), 매출액(SALES) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 저자 ID를 오름차순으로, 저자 ID가 같다면 카테고리를 내림차순 정렬해주세요.

solve

SELECT o.AUTHOR_ID, o.AUTHOR_NAME, o.CATEGORY, o.PRICE * SUM(s.SALES) 
	AS TOTAL_SALES
    FROM BOOK_SALES s
    JOIN (SELECT b.BOOK_ID, b.CATEGORY, b.AUTHOR_ID, b.PRICE, a.AUTHOR_NAME
        FROM BOOK b
        JOIN AUTHOR a 
        ON b.AUTHOR_ID = a.AUTHOR_ID) o ON s.BOOK_ID = o.BOOK_ID
    WHERE s.SALES_DATE LIKE '2022-01%'
    GROUP BY o.AUTHOR_ID, o.CATEGORY
    ORDER BY o.AUTHOR_ID ASC, o.CATEGORY DESC
  • total_sales 계산이 잘못됨
    • 하나의 price에 전체 sales를 곱한 것
SELECT o.AUTHOR_ID, o.AUTHOR_NAME, o.CATEGORY, SUM(o.PRICE * s.SALES) 
	AS TOTAL_SALES
    FROM BOOK_SALES s
    JOIN (SELECT b.BOOK_ID, b.CATEGORY, b.AUTHOR_ID, b.PRICE, a.AUTHOR_NAME
        FROM BOOK b
        JOIN AUTHOR a 
        ON b.AUTHOR_ID = a.AUTHOR_ID) o ON s.BOOK_ID = o.BOOK_ID
    WHERE s.SALES_DATE LIKE '2022-01%'
    GROUP BY o.AUTHOR_ID, o.CATEGORY
    ORDER BY o.AUTHOR_ID ASC, o.CATEGORY DESC
  • total_sales 계산 : 각 price에 각 sales를 곱한 것
profile
What else can I do

0개의 댓글