https://school.programmers.co.kr/learn/courses/30/lessons/133027
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이 - 나의 생각
SELECT FLAVOR, SUM(TOTAL_ORDER) TOTAL_ORDER
FROM JULY
GROUP BY FLAVOR
두 테이블을 조인을 하기전에 JULY 테이블에서
아이스크림 맛이 겹치는 경우를 GROUP BY로 합치면서 SUM으로 주문량을 구합니다.
-> JULY는 두개의 공장에서 출하하기 때문입니다.
그 다음에 조인한 걸 GROUP BY로 아이스크림 맛을 합치고
SUM으로 두 테이블의 합을 구합니다.
그리고 ORDER BY로 내림차순(DESC)하고
LIMIT 3로 상위 3개만 구합니다.
코드
SELECT a.FLAVOR
FROM (SELECT f.FLAVOR, SUM(f.TOTAL_ORDER+j.TOTAL_ORDER) TOTAL_ORDER
FROM FIRST_HALF f JOIN (
SELECT FLAVOR, SUM(TOTAL_ORDER) TOTAL_ORDER
FROM JULY
GROUP BY FLAVOR
) j
ON f.FLAVOR = j.FLAVOR
GROUP BY f.FLAVOR
ORDER BY TOTAL_ORDER DESC) a
LIMIT 3;
728x90