SQL/문제풀이

[프로그래머스] 주문량이 많은 아이스크림들 조회하기

응엉잉 2024. 1. 5. 10:14

https://school.programmers.co.kr/learn/courses/30/lessons/133027

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

SELECT a.flavor
FROM (
    SELECT j.flavor,
        j.total_order +  f.total_order AS total
    FROM july j
        LEFT JOIN first_half f ON j.shipment_id = f.shipment_id
    GROUP BY j.flavor
    ORDER BY total DESC
    LIMIT 3
) AS a

이 코드가 틀린 이유 : July table에는 동일한 flavor 이더라도 다른 shipment_id를 가진 경우가 있으므로 july의 total_order 들을 합쳐줘야 함

 

따라서 정답 코드는 다음과 같다.

SELECT flavor
FROM (
    SELECT j.flavor,
        SUM(j.total_order) + f.total_order AS total
    FROM july j
        LEFT JOIN first_half f ON j.shipment_id = f.shipment_id
    GROUP BY j.flavor
    ORDER BY total DESC
    LIMIT 3
) a

1. july와 first_half를 JOIN

 

2. 맛별 판매량 파악을 위해 flavor로 GROUP BY

 

3. 7월과 상반기의 맛별 아이스크림 판매량을 집계

 

4.판매량 상위 3개 맛에 대해서 출력하기 위해 ORDER BY + LIMIT 사용

 

5. 4번까지의 쿼리를 FROM절 서브쿼리로 사용

  이때 FROM절 서브쿼리는 Alias로 이름을 붙여줘야 사용 가능함

 

6. flavor만 SELECT