[프로그래머스] SQL 고득점 Kit - GROUP BY (2)

박채은·2023년 6월 23일
0

코딩테스트

목록 보기
49/52

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

  • 문제에 ~~별이라는 단어가 있으면, 그것이 GROUP BY이다!

[틀린 코드]

SELECT A.AUTHOR_ID, AUTHOR_NAME, CATEGORY, PRICE *sum(SALES) as TOTAL_SALES
from BOOK_SALES S
join BOOK B on B.BOOK_ID = S.BOOK_ID
join AUTHOR A on A.AUTHOR_ID = B.AUTHOR_ID
where YEAR(SALES_DATE) = 2022 and MONTH(SALES_DATE) = 01
group by AUTHOR_NAME, CATEGORY
order by B.AUTHOR_ID, CATEGORY desc

[맞는 코드]

SELECT A.AUTHOR_ID, AUTHOR_NAME, CATEGORY, sum(PRICE * SALES) as TOTAL_SALES
from BOOK_SALES S
join BOOK B on B.BOOK_ID = S.BOOK_ID
join AUTHOR A on A.AUTHOR_ID = B.AUTHOR_ID
where YEAR(SALES_DATE) = 2022 and MONTH(SALES_DATE) = 01
group by AUTHOR_NAME, CATEGORY
order by B.AUTHOR_ID, CATEGORY desc

PRICEsum(SALES) vs sum(PRICE SALES)

  • sum(PRICE SALES): 해당 그룹의 행에서 PRICE SALES를 하고 이를 다 더한다.
  • PRICE*sum(SALES): 이렇게 작성하면 GROUP BY 때문에 문제가 발생하는 것은 알겠는데 정확히 어떤 과정으로 해당 값이 나오는지 모르겠다.

https://school.programmers.co.kr/questions/41330?referer=collection-of-questions

0개의 댓글