1. 문제
2. 문제 풀기 전에,
- FIRST_HALF 👉🏻 아이스크림 맛 조회
- JULY 👉🏻 X
- 7월 + 상반기 아이스크림 총 주문량 상위 3개 조회
- 7월 + 상반기 아이스크림 총 주문량 DESC
- 데이터 갯수를 제한하는 LIMIT 함수와 데이터의 합계를 계산하는 SUM 함수 생각하기
3. 테이블
FIRST_HALF AS F
JULY AS J
4. 풀이 과정
1단계) 두 테이블 모두 FLAVOR 컬럼을 동일하게 가지고 있으니 이를 기준으로 INNER JOIN을 해준다.
SELECT
FROM FIRST_HALF F
INNER JOIN JULY AS J ON F.FLAVOR = J.FLAVOR
2단계) 아이스크림 맛을 조회하는 SELECT문을 작성해 준다.
SELECT F.FLAVOR
FROM FIRST_HALF F
INNER JOIN JULY AS J ON F.FLAVOR = J.FLAVOR
3단계) GROUP BY절을 이용해 아이스크림 맛에 따라 그룹화를 해준다.
SELECT F.FLAVOR
FROM FIRST_HALF F
INNER JOIN JULY AS J ON F.FLAVOR = J.FLAVOR
GROUP BY F.FLAVOR
4단계) '상반기 총 주문량 합계 + 7월 총 주문량 합계'로 계산을 해서 내림차순 정렬을 하면 큰 값부터 조회가 된다.
3단계에서 맛에 따른 그룹화 작업을 진행하였으니 아이스크림 맛 별 총 주문량 합계를 구할 수 있다.
SELECT F.FLAVOR
FROM FIRST_HALF F
INNER JOIN JULY AS J ON F.FLAVOR = J.FLAVOR
GROUP BY F.FLAVOR
ORDER BY SUM(F.TOTAL_ORDER) + SUM(J.TOTAL_ORDER) DESC
5단계) 값이 큰 순서대로 상위 3개의 맛을 조회하기 위해 LIMIT 함수로 상위 3개의 데이터까지만 조회하고 끊어준다.
👨🏻🏫 LIMIT 구문은 조회할 데이터의 갯수를 제한해 주는 역할을 한다.
SELECT F.FLAVOR
FROM FIRST_HALF F
INNER JOIN JULY AS J ON F.FLAVOR = J.FLAVOR
GROUP BY F.FLAVOR
ORDER BY SUM(F.TOTAL_ORDER) + SUM(J.TOTAL_ORDER) DESC
LIMIT 3;
5. 완성 코드
SELECT F.FLAVOR
FROM FIRST_HALF F
INNER JOIN JULY AS J ON F.FLAVOR = J.FLAVOR
GROUP BY F.FLAVOR
ORDER BY SUM(F.TOTAL_ORDER) + SUM(J.TOTAL_ORDER) DESC
LIMIT 3;
🔗 관련 링크
프로그래머스 문제 - https://school.programmers.co.kr/learn/courses/30/lessons/133027
728x90
'Skills > SQL' 카테고리의 다른 글
프로그래머스: 조건에 맞는 개발자 구하기 (MySQL) (0) | 2024.03.08 |
---|---|
프로그래머스: 업그레이드 된 아이템 구하기 (MySQL) (0) | 2024.03.07 |
프로그래머스: 없어진 기록 찾기 (MySQL) (1) | 2024.03.04 |
프로그래머스: 저자 별 카테고리 별 매출액 집계하기 (MySQL) (0) | 2024.03.03 |
프로그래머스: 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (MySQL) (0) | 2024.03.02 |