Skills/SQL

프로그래머스: 주문량이 많은 아이스크림들 조회하기 (MySQL)

듀공🥕 2024. 3. 5. 23:38

 

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