[프로그래머스/Lv4️⃣] 식품분류별 가장 비싼 식품의 정보 조회하기 (문제 해설 및 풀이)
-
728x90
반응형
Lv4️⃣식품분류별 가장 비싼 식품의 정보 조회하기
📝 문제 설명
다음은 식품의 정보를 담은 FOOD_PRODUCT 테이블입니다. FOOD_PRODUCT 테이블은 다음과 같으며 PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE는 식품 ID, 식품 이름, 식품코드, 식품분류, 식품 가격을 의미합니다.
FOOD_PRODUCT
🔖 예시
FOOD_PRODUCT
❓ 문제
FOOD_PRODUCT 테이블에서 식품분류별로 가격이 제일 비싼 식품의 분류, 가격, 이름을 조회하는 SQL문을 작성해주세요. 이때 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력시켜 주시고 결과는 식품 가격을 기준으로 내림차순 정렬해주세요.
🎯 풀이
SELECT CATEGORY, PRICE AS MAX_PRICE, PRODUCT_NAME
FROM FOOD_PRODUCT
WHERE (CATEGORY, PRICE) IN (SELECT CATEGORY, MAX(PRICE)
FROM FOOD_PRODUCT
GROUP BY CATEGORY
HAVING CATEGORY IN ('과자', '국', '김치','식용유'))
ORDER BY MAX_PRICE DESC;
⭐ 서브쿼리를 사용하지 않고 메인쿼리에 GROUP BY 를 사용하게 되면 PRODUCT_NAME 이 제대로 나오지 않으므로 서브쿼리를 사용