자두의 데브로그

[MySQL] 프로그래머스 식품분류별 가장 비싼 식품의 정보 조회하기 본문

코딩테스트/SQL

[MySQL] 프로그래머스 식품분류별 가장 비싼 식품의 정보 조회하기

왕자두 2024. 10. 18. 00:37

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

 

프로그래머스

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

programmers.co.kr

 

Group by에서 가장 어려운 문제인데... 두 번째 풀지만 또 못풀었다.. 흑흑 한 번 푼 건 머리에 좀 넣어라..!!!!

사실 어떻게 풀고 나면 1도 어렵지 않은 문제이다. 

 

이 문제를 풀다보면 가장 큰 문제점은 category랑 max(price)는 제대로 나오는데 product_name이 동일하게 나오지 않는다는 것이다. 이 문제를 가장 쉽게 해결하기 위해서는 price를 where 안에 넣어서 조절해주면 된다. 그래서 where 안에 price를 in으로 max(price) 값을 가질 때에 대해서 category와 product_name을 출력하게 하였고, category로 국, 과자, 김치, 식용유 넷 중 하나여야 하니까 in으로 where 조건에서 걸러줬다. 

 

SQL 문제 풀다보면 특히 어렵게 생각하는 경우가 너무 많은데 조건 하나씩 해결해가며 풀다보면 언젠가는 잘 풀 수 있게 될지도!

-- 코드를 입력하세요
SELECT category, price as max_price, product_name
from food_product
where price in (select max(price) from food_product group by category) and category in ('국', '과자', '김치', '식용유')
group by category
order by max_price desc;