주문량이 많은 아이스크림들 조회하기
https://school.programmers.co.kr/learn/courses/30/lessons/133027
- 문제 풀이
1
2
3
4
5
6
7
8
9
10
SELECT FLAVOR
FROM(
SELECT F.FLAVOR, SUM(F.TOTAL_ORDER + J.TOTAL_ORDER) AS "SUM"
FROM FIRST_HALF F
JOIN JULY J
ON F.FLAVOR = J.FLAVOR
GROUP BY F.FLAVOR
ORDER BY SUM DESC
FETCH FIRST 3 ROWS ONLY
);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT F.FLAVOR
FROM FIRST_HALF F, JULY J
WHERE F.FLAVOR = J.FLAVOR
GROUP BY F.FLAVOR
ORDER BY SUM(F.TOTAL_ORDER + J.TOTAL_ORDER) DESC
FETCH FIRST 3 ROWS ONLY;
SELECT F.FLAVOR
FROM FIRST_HALF F
JOIN JULY J
ON F.FLAVOR = J.FLAVOR
GROUP BY F.FLAVOR
ORDER BY SUM(F.TOTAL_ORDER + J.TOTAL_ORDER) DESC
FETCH FIRST 3 ROWS ONLY
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-- 각 테이블 별 맛에 대하여 GROUP BY하고 JOIN으로 합쳐서 다시 더하여 순위를 구한다.
SELECT JULY_SUM.FLAVOR
FROM
(
SELECT FLAVOR, SUM(TOTAL_ORDER) SUM1
FROM JULY
GROUP BY FLAVOR
) JULY_SUM
,(
SELECT FLAVOR, SUM(TOTAL_ORDER) SUM2
FROM FIRST_HALF
GROUP BY FLAVOR
) FIRST_HALF_SUM
WHERE JULY_SUM.FLAVOR = FIRST_HALF_SUM.FLAVOR
ORDER BY SUM1+SUM2 DESC
FETCH FIRST 3 ROWS ONLY;
1
2
3
4
5
6
7
8
9
10
11
12
SELECT FLAVOR
FROM
(
SELECT *
FROM JULY
UNION
SELECT *
FROM FIRST_HALF
) A
GROUP BY FLAVOR
ORDER BY SUM(TOTAL_ORDER) DESC
FETCH FIRST 3 ROWS ONLY;
- 두 테이블 모두 FLAVOR에 대한 정보를 가진다.
- 다만, 하나의 FLAVOR라도 여러 출하번호를 가질 수 있다.
- 실행 결과
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.