https://school.programmers.co.kr/learn/courses/30/lessons/133027
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
'SQL > 문제풀이' 카테고리의 다른 글
[프로그래머스] 강원도에 위치한 생산공장 목록 출력하기 (0) | 2024.02.10 |
---|---|
[프로그래머스] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) | 2024.01.09 |
[프로그래머스] 저자 별 카테고리 별 매출액 집계하기 (0) | 2024.01.05 |
[프로그래머스] 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 (0) | 2024.01.03 |
[프로그래머스] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (0) | 2024.01.02 |