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

2024. 1. 12. 13:44Coding/프로그래머스-SQL

문제 링크

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

 

프로그래머스

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

programmers.co.kr

 

문제

 

코드

-- 코드를 입력하세요
SELECT CATEGORY, PRICE, PRODUCT_NAME
from FOOD_PRODUCT
WHERE (CATEGORY = '과자' OR CATEGORY = '국' OR CATEGORY = '김치' OR CATEGORY = '식용유')
  AND (CATEGORY, PRICE) IN (
    SELECT CATEGORY, MAX(PRICE)
    FROM FOOD_PRODUCT
    GROUP BY CATEGORY
  )
order by PRICE desc;

이 문제는 도저히 모르겠어서 인터넷의 도움을 받았는데, 분석 해 본 결과

1. 카테고리가 과자, 국, 김치, 식용유에 해당하는지에 대한 조건 하나를 넣어준다.

2. WHERE 조건에서 AND로 연결된 IN문 안에 서브쿼리를 하나 생성해준다. 서브쿼리에서는 카테고리와 카테고리별 최대 가격이 출력되도록 한다. 그리고 이에 해당하는 카테고리와 가격만이 두 번째 쿼리에서 출력되도록 한다.