문제 설명
다음은 식품의 정보를 담은 FOOD_PRODUCT 테이블입니다. FOOD_PRODUCT 테이블은 다음과 같으며 PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE는 식품 ID, 식품 이름, 식품코드, 식품분류, 식품 가격을 의미합니다.
문제
FOOD_PRODUCT 테이블에서 식품분류별로 가격이 제일 비싼 식품의 분류, 가격, 이름을 조회하는 SQL문을 작성해주세요. 이때 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력시켜 주시고 결과는 식품 가격을 기준으로 내림차순 정렬해주세요.
풀이
- 식품분류별로 (가격이 제일 비싼) 식품의 분류, 가격, 이름을 조회 : select 절에 CATEGORY, PRICE, PRODUCT_NAME
- group by는 CATEGORY 로
- 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력 : where 절 조건 'in' 사용
- 식품분류별로 가격이 제일 비싼 식품만 필터링 : where 절에 추가 조건
- price in (서브쿼리) : CATEGORY로 그룹화하여, price의 최댓값을 매칭
select CATEGORY, PRICE, PRODUCT_NAME
from FOOD_PRODUCT
where CATEGORY in ('과자', '국', '김치', '식용유')
and PRICE in (select max(PRICE)
from FOOD_PRODUCT
group by CATEGORY)
group by 1
order by 2 desc
728x90
'SQL > SQL test' 카테고리의 다른 글
[프로그래머스] 자동차 대여 기록 별 대여 금액 구하기 (0) | 2023.10.13 |
---|---|
[프로그래머스] 주문량이 많은 아이스크림들 조회하기 (0) | 2023.10.09 |
[프로그래머스] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (0) | 2023.10.09 |
[프로그래머스] 즐겨찾기가 가장 많은 식당 정보 출력하기 (0) | 2023.10.07 |
[프로그래머스] 조건에 맞는 사용자와 총 거래금액 조회하기 (0) | 2023.10.06 |