👉 오늘 한 일
- 프로그래머스 SQL 문제풀이
- 책 편집 & 편집 툴 적용
프로그래머스 SQL
1. 주문량이 많은 아이스크림들 조회하기 💡
- lv 4, JOIN
- 7월 판매 데이터에서 맛별로 주문량을 합쳐준 derived 테이블 생성, 상반기 주문량 테이블과 JOIN해서 7월 총판매량 + 상반기 총판매량을 구한 뒤 상위 3개만 추출. 맛(flavor) 컬럼만 표시하기 위해 서브쿼리로 한 번 더 감싸줌
SELECT flavor
FROM(
SELECT b.flavor,
(SUM(a.total_order) + SUM(b.total_order)) total_order
FROM(
SELECT shipment_id,
flavor,
SUM(total_order) total_order
FROM july
GROUP BY flavor) a
JOIN first_half b
ON a.flavor = b.flavor
GROUP BY b.flavor
ORDER BY total_order DESC
LIMIT 3) c
- 다른 풀이
- 7월과 상반기 각 테이블에서 맛별로 판매량 총합을 구한 후 JOIN 하는게 더 깔끔한 것 같다!
SELECT H.FLAVOR
FROM (
SELECT FLAVOR, SUM(TOTAL_ORDER) AS TOTAL_ORDER
FROM FIRST_HALF
GROUP BY FLAVOR
) H
INNER JOIN (
SELECT FLAVOR, SUM(TOTAL_ORDER) AS TOTAL_ORDER
FROM JULY
GROUP BY FLAVOR
) J ON H.FLAVOR = J.FLAVOR
ORDER BY (J.TOTAL_ORDER + H.TOTAL_ORDER) DESC
LIMIT 3
- union 활용한 풀이
- 출제 의도와는 맞지 않는 것 같지만 훨씬 간단하게 풀 수 있다.
select flavor
from (
select * from first_half
union
select * from july) as tmp
group by flavor
order by sum(total_order) desc
limit 0,3