본문 바로가기

코딩테스트/SQL - 프로그래머스

SQL 고득점 kit(JOIN) - 주문량이 많은 아이스크림들 조회하기

 

이 문제는 2가지 방법으로 풀었다.

-- 첫번째 풀이. UNION ALL 사용
SELECT FLAVOR
    FROM (
            SELECT FLAVOR, TOTAL_ORDER FROM FIRST_HALF
            UNION ALL
            SELECT FLAVOR, TOTAL_ORDER FROM JULY
         ) BASE
    GROUP BY FLAVOR
    ORDER BY SUM(TOTAL_ORDER) DESC
    LIMIT 3

 

위 풀이처럼 척척척 풀고 ACCEPTED 되었는데, 제목을 보니 JOIN 파트였던 것...

 

물론 JOIN을 안 쓰고 풀었다고 해서 잘못된 건 아니지만, JOIN 파트 문제면 JOIN을 써 봐야 하지 않을까 싶어서 UNION 대신 JOIN을 쓰고 풀어 보았다.

-- 2번째 풀이. JOIN 사용
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

 

https://school.programmers.co.kr/questions/72363