프로그래머스 SQL 고득점 킷 주문량이 많은 아이스크림들 조회하기

hysss·2023년 2월 17일
0

JOIN - 주문량이 많은 아이스크림들 조회하기

문제 분석

7월 아이스크림 총 주문량과 상반기의 아이스크림 총 주문량을 더한 값
큰 순서대로 상위 3개의 맛을 조회하는 SQL 문을 작성해주세요.

코드

SELECT F.FLAVOR
FROM FIRST_HALF F JOIN JULY J ON F.FLAVOR=J.FLAVOR
GROUP BY F.FLAVOR
ORDER BY (F.TOTAL_ORDER+SUM(J.TOTAL_ORDER)) DESC
LIMIT 3

코드2 (UNION)

SELECT FLAVOR
FROM (SELECT *
      FROM FIRST_HALF
      UNION ALL
      SELECT *
      FROM JULY) AS A
GROUP BY FLAVOR
ORDER BY SUM(TOTAL_ORDER) DESC
LIMIT 3

문제 풀이

JULY 테이블의 FLAVOR는 여러 개가 존재할 수 있다.
그래서 GROUP BY FLAVOR로 Grouping을 한 뒤 SUM() 집계 함수를 이용해서 해당 맛의 7월달 총 주문량을 구했다.
이후 상반기 총 주문량과 더한 값을 이용해서 ORDER BY DESC로 내림차순으로 정렬하고,
LIMIT 3으로 상위 3개만 출력했다.

두 번째 방법인 UNION도 결국엔 JOIN과 똑같이 FLAVOR로 Grouping을 하는데, FLAVOR Column이 1개 뿐이기 때문에 SUM(TOTAL_ORDER)로 손쉽게 상반기 총 주문량과 7월 총 주문량의 합을 구할 수 있다.

profile
매일 매일 규칙적으로

0개의 댓글