포스트

주문량이 많은 아이스크림들 조회하기

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 라이센스를 따릅니다.