7월 아이스크림 총 주문량과 상반기의 아이스크림 총 주문량을 더한 값이
큰 순서대로 상위 3개의 맛을 조회하는 SQL 문을 작성해주세요.
SELECT F.FLAVOR
FROM FIRST_HALF F JOIN JULY J ON F.FLAVOR=J.FLAVOR
GROUP BY F.FLAVOR
ORDER BY (F.TOTAL_ORDER+SUM(J.TOTAL_ORDER)) DESC
LIMIT 3
SELECT FLAVOR
FROM (SELECT *
FROM FIRST_HALF
UNION ALL
SELECT *
FROM JULY) AS A
GROUP BY FLAVOR
ORDER BY SUM(TOTAL_ORDER) DESC
LIMIT 3
JULY 테이블의 FLAVOR는 여러 개가 존재할 수 있다.
그래서 GROUP BY FLAVOR로 Grouping을 한 뒤 SUM() 집계 함수를 이용해서 해당 맛의 7월달 총 주문량을 구했다.
이후 상반기 총 주문량과 더한 값을 이용해서 ORDER BY DESC로 내림차순으로 정렬하고,
LIMIT 3으로 상위 3개만 출력했다.
두 번째 방법인 UNION도 결국엔 JOIN과 똑같이 FLAVOR로 Grouping을 하는데, FLAVOR Column이 1개 뿐이기 때문에 SUM(TOTAL_ORDER)로 손쉽게 상반기 총 주문량과 7월 총 주문량의 합을 구할 수 있다.