본문 바로가기

SQL

[SQL 문제풀이] 식품분류별 가장 비싼 식품의 정보 조회하기-프로그래머스

문제링크

 

FOOD_PRODUCT 테이블에서 식품분류별로 가격이 제일 비싼 식품의 분류, 가격, 이름을 조회하는 SQL문을 작성해주세요. 이때 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력시켜 주시고 결과는 식품 가격을 기준으로 내림차순 정렬해주세요.

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이

 

1. 가장먼저 식품분류 기준으로 조건문을 작성하였다.

2. group by 를 category 기준으로 하여 각 식품분류 최대값을 구하는 select문을 만들었다.

3. food_product 테이블과 price , category 기준으로 join 하여 출력하였다.

4. 마지막으로 price 가격 기준으로 내림차순 정렬하였다.

 

쿼리

select 
b.category , b.max_price , a.product_name
from food_product a , 
(
    select 
    category , max(price) as max_price
    from 
    food_product 
    where category in ('과자','국','김치','식용유')
    group by category 
) b
where a.price = b.max_price 
and a.category = b.category
order by max_price desc
;