데이터 분석 공부/SQL
SQL 정리(프로그래머스 - '주문량이 많은 아이스크림들 조회하기')(24.01.22)
세조목
2024. 1. 22. 20:33
https://school.programmers.co.kr/learn/courses/30/lessons/133027
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
SELECT FLAVOR
FROM
(
SELECT *
FROM FIRST_HALF
UNION ALL
SELECT *
FROM JULY
) A
GROUP BY FLAVOR
ORDER BY SUM(TOTAL_ORDER) DESC
LIMIT 3
문제에서는
7월 아이스크림 총 주문량과
상반기의 아이스크림 총 주문량을 더한 값 중
그 값이 큰 순서대로 상위 3개의 맛을 조회하라고 요구한다.
총 주문량의 합이니까 SUM함수를 쓰면 될 것 같다.
그런데 어떻게 7월 아이스크림 총 주문량과 상반기의 아이스크림 총 주문량을 더할 수 있을까?
다른 테이블인데 말이다.
JOIN으로는 힘들 것 같다.
옆으로 붙여봤자 SUM함수를 사용하기는 힘들것이기 때문이다.
두 테이블의 컬럼이 동일하니까 UNION ALL 함수를 쓸 수 있지 않을까?
그렇다.
UNION ALL 함수를 써서
두 테이블을 위 아래로 붙이고
FLAVOR 별로 TOTAL_ORDER를 SUM하면 되는 것이다.
그런다음
SUM(TOTAL_ORDER)를 내림차순으로 정렬하고
3개까지 출력하라는 명령어인 LIMIT 3을
입력해주면
결과값이 출력되는 것을 확인할 수 있다.