본문 바로가기
IT/SQL

[MySQL] 프로그래머스 JOIN 04 주문량이 많은 아이스크림들 조회하기

by 민트린 2023. 10. 2.
728x90

문제

7월 아이스크림 총 주문량과 상반기의 아이스크림 총 주문량을 더한 값이 큰 순서대로 상위 3개의 맛을 조회하는 SQL 문을 작성해주세요.


풀이

Level 4부터는 진짜 어려운 것 같다. 서브쿼리 써야 하는 것도 있고 복잡하다. 이 문제도 정말 다양한 풀이가 있는데 가장 간단한 풀이로 가져왔다.

SELECT F.FLAVOR
FROM FIRST_HALF F
INNER JOIN JULY J
ON F.FLAVOR = J.FLAVOR
GROUP BY F.FLAVOR
ORDER BY SUM(F.TOTAL_ORDER + J.TOTAL_ORDER) DESC
LIMIT 3 OFFSET 0

 

이 풀이에서 이해가 안 됐던 부분은 ORDER BY절의 SUM(F.TOTAL_ORDER + J.TOTAL_ORDER) 부분이다.

왜 SUM을 하는 걸까? 이미 더했잖아.

 

왼쪽은 SUM을 안 했고, 오른쪽은 SUM을 했다. chocolate과 strawberry의 순서가 다르다.

 

월에는 아이스크림 주문량이 많아 같은 아이스크림에 대하여 서로 다른 두 공장에서 아이스크림 가게로 출하를 진행하는 경우가 있습니다. 이 경우 같은 맛의 아이스크림이라도 다른 출하 번호를 갖게 됩니다.

 

JULY 테이블을 보면 strawberry가 다른 출하번호로 2번 있다. SUM을 안 하면 출하번호 같은 것끼리만 주문량이 더해지기 때문에 SUM을 해야 FLAVOR 그룹별로 상반기와 7월 주문량이 더해져 출하번호가 다른 딸기맛이 다르게 취급되지 않는다.

728x90