SQL

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

hminor 2023. 7. 12. 10:56
-- 흠 우선 아직 확실하게 이해했다기보단 대략적으로 이해했다고 보면 될 듯하다
-- MAX()메서드는 GROUP BY를 커버하지 못한다고 한다.
-- 그래서 운 좋게 맞아 떨어질지 몰라도 원하는 대로 조회가 되지 않을 수 있기에
-- 아래와 같이 WHERE절에 CATEGORY을 그룹으로 해서 해당 값에 포함되면 
-- 조회하는 거로 하는데 
-- 조금 더 생각해보니까 한번의 과정이 더 필요했던게 아닐까 싶다
SELECT CATEGORY, PRICE AS MAX_PRICE, PRODUCT_NAME
    FROM FOOD_PRODUCT
    WHERE PRICE IN (SELECT MAX(PRICE) FROM FOOD_PRODUCT GROUP BY CATEGORY)
    GROUP BY CATEGORY
    HAVING CATEGORY IN ('과자', '국', '김치', '식용유')
    ORDER BY MAX_PRICE DESC