프로그래머스 - 식품분류별 가장 비싼 식품의 정보 조회하기
GROUP BY를 사용하여 데이터를 그룹화하고, 동시에 해당 그룹의 최대 값을 찾는 문제이다.
SELECT CATEGORY, MAX(PRICE) AS MAX_PRICE, PRODUCT_NAME
FROM FOOD_PRODUCT
GROUP BY CATEGORY
HAVING CATEGORY IN ('과자', '국', '김치', '식용유')
ORDER BY MAX_PRICE DESC;
PRODUCT_ID | PRODUCT_NAME | CATEGORY | PRICE
-------------------------------------------------
P0018 | 맛있는고추기름 | 식용유 | 6100
P0019 | 맛있는카놀라유 | 식용유 | 5100
P0020 | 맛있는산초유 | 식용유 | 6500
맛있는산초유가 나와야한다.
CATEGORY | MAX_PRICE | PRODUCT_NAME
--------------------------
식용유 | 6500 | 맛있는고추기름
하지만 맛있는고추기름이 나온다.
이러한 경우 서브쿼리를 사용하여 정확한 값을 가져와야한다!!
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 ('과자', '국', '김치', '식용유')
ORDER BY MAX_PRICE DESC;
글 재미있게 봤습니다.