SQL/프로그래머스 SQL

MySQL 프로그래머스 SQL 고득점 Kit 성분으로 구분한 아이스크림 총 주문량 문제 답

진리뷰 2023. 9. 13. 21:48
반응형

 

 

MySQL-프로그래머스-SQL-고득점-Kit-성분으로-구분한-아이스크림-총-주문량-문제-답-썸네일
성분으로 구분한 아이스크림 총 주문량 문제, 답 정리

 

 

프로그래머스 SQL 고득점 Kit SELECT에서 '성분으로 구분한 아이스크림 총 주문량' 문제와 답입니다.

*이 글은 MySQL 버전입니다.

 

 

성분으로 구분한 아이스크림 총 주문량 문제 설명

 

  • 문제 의도: GROUP BY 사용
  • 외래키가 참조하는 대상은 해당 테이블에서 기본키이다.

그래서 ICECREAM_INFO테이블의 FLAVOR가 기본키이다.

 

프로그래머스-SQL고득점Kit-SELECT-성분으로-구분한-아이스크림-총-주문량-문제-설명
문제 설명

 

 

성분으로 구분한 아이스크림 총 주문량 문제

 

  • 성분 타입, 성분 타입 별 총 주문량(별칭 필요, TOTAL_ORDER) 출력.
  • 총 주문량 작은 순서 정렬.

 

프로그래머스-SQL고득점Kit-SELECT-성분으로-구분한-아이스크림-총-주문량-문제
문제

 

 

성분으로 구분한 아이스크림 총 주문량 답

 

# 두 테이블의 컬럼들 가져오기

  • first_half와 icecream_info 두 테이블 선택, 편의상 a와 b로 별칭.
  • first_half와 icecream의 공통값 flavor를 필터링 기준으로 선택, 이는 교집합 INNER JOIN과 같음.
  • GROUP BY ingredient_type: 성분 타입 별 총 주문량 및 정렬 위해, 성분 타입 그룹화.
  • 성분 타입 별 총 주문량이므로 SUM 이용.
  • 총 주문량(=SELECT문 2번째 컬럼) 기준 오름차순 정렬이므로, ORDER BY 2;

 

SELECT
              ingredient_type, SUM(total_order) TOTAL_ORDER
FROM
              first_half a,
              icecream_info b 
WHERE
              a.flavor = b.flavor
GROUP BY ingredient_type
ORDER BY 2;

 

 

# INNER JOIN 사용한 같은 답

  • INNER JOIN 시 INNER 생략 가능

 

SELECT
              ingredient_type, SUM(total_order) TOTAL_ORDER
FROM
              first_half a
                     JOIN
              icecream_info b ON a.flavor = b.flavor
GROUP BY ingredient_type
ORDER BY 2;

 

반응형
top