문제
풀이
상반기에는 판매하지 않았던 맛을 7월에는 판매할 수도 있고, 반대로 상반기에는 판매했던 맛을 7월에는 판매하지 않을 수도 있다.
그래서 총 주문량을 구하기 위해서는 두 테이블을 OUTER JOIN을 해야 한다고 생각했는데, MySQL에는 FULL OUTER JOIN을 지원하지 않아서 LEFT JOIN과 RIGHT JOIN을 한 후에 그걸 UNION 하는 방식으로 코드를 작성했다.
WITH SUB AS (
SELECT H.FLAVOR, (H.TOTAL_ORDER + SUB.TOTAL_ORDER) AS TOTAL_ORDER
FROM FIRST_HALF AS H
LEFT JOIN (SELECT FLAVOR, SUM(TOTAL_ORDER) AS TOTAL_ORDER
FROM JULY
GROUP BY FLAVOR) AS SUB
ON H.FLAVOR = SUB.FLAVOR
UNION
SELECT H.FLAVOR, (H.TOTAL_ORDER + SUB.TOTAL_ORDER) AS TOTAL_ORDER
FROM FIRST_HALF AS H
RIGHT JOIN (SELECT FLAVOR, SUM(TOTAL_ORDER) AS TOTAL_ORDER
FROM JULY
GROUP BY FLAVOR) AS SUB
ON H.FLAVOR = SUB.FLAVOR
ORDER BY TOTAL_ORDER DESC
LIMIT 3
)
SELECT FLAVOR FROM SUB;
728x90