[프로그래머스 SQL] 주문량이 많은 아이스크림들 조회하기

kiki·2024년 1월 5일
0

프로그래머스

목록 보기
41/78

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/133027

문제 설명

  • 7월 아이스크림 총 주문량과 상반기의 아이스크림 총 주문량을 더한 값이 큰 순서대로 상위 3개의 맛을 조회

시도

SELECT FLAVOR FROM 
	(SELECT F.SHIPMENT_ID, F.FLAVOR, SUM(F.TOTAL_ORDER + J.TOTAL_ORDER) AS TOTAL_ORDER
        FROM FIRST_HALF AS F LEFT JOIN JULY AS J ON J.FLAVOR = F.FLAVOR GROUP BY FLAVOR) CONC
    ORDER BY TOTAL_ORDER DESC
    LIMIT 3;

나는 먼저 JULY와 FIRST_HALF를 합치고 시작했다.
여기서 어려웠던 건 중복 FLAVOR가 있는 테이블에서 GROUP BY로 어떻게 TOTAL_ORDER 값을 합할지였다. GROUP BY, 칼럼 합(+), SUM을 적절히 사용해 해결했다.
그리고 every derived table must have its own alias 오류가 생겼었는데 이는 서브 쿼리에 alias(이름?)가 지정되지 않아 생긴 문제였다. 이를 해결하기 위해선 (서브쿼리) NAME과 같이 작성하면 된다.

정리

  • 컬럼 값 합: 컬럼 연산은 +,-,* 등을 사용해 직관적으로 사용할 수 있다.
  • SUM: 한 컬럼의 값을 모두 더해 반환하는 함수
  • 서브 쿼리: MySQL에서는 서브쿼리에 이름을 지정해줘야 오류가 발생하지 않는다.

0개의 댓글