코딩테스트/SQL
[SQL Lv4] 주문량이 많은 아이스크림들 조회하기
박창준
2024. 11. 18. 14:33
https://school.programmers.co.kr/learn/courses/30/lessons/133027
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 해석
1. TOTAL_ORDER 상위 랭킹 3개를 출력하는 문제이다
문제 풀이
1. CTE를 이용해 미리 FIRST_HALF과 JULY 테이블의 총합을 구해서 정렬한 파생 테이블을 만들었다.
2. 그리고 LIMIT을 활용해 상위 3개만 뽑아오도록 구현했다.
WITH RANKDATA AS (
SELECT
F.FLAVOR,
SUM(F.TOTAL_ORDER + J.TOTAL_ORDER) AS TOTAL_ORDER
FROM FIRST_HALF F
INNER JOIN JULY J ON F.FLAVOR = J.FLAVOR
GROUP BY F.FLAVOR
ORDER BY TOTAL_ORDER DESC
)
SELECT FLAVOR
FROM RANKDATA
LIMIT 3