WITH CTE AS (
SELECT CATEGORY, MAX(PRICE) AS MAX_PRICE
FROM FOOD_PRODUCT
GROUP BY CATEGORY
)
SELECT CTE.CATEGORY, CTE.MAX_PRICE, PRODUCT_NAME
FROM FOOD_PRODUCT FP
JOIN CTE
ON CTE.CATEGORY = FP.CATEGORY AND
CTE.MAX_PRICE = FP.PRICE
WHERE CTE.CATEGORY IN ('과자', '국', '김치', '식용유')
ORDER BY 2 DESC;
처음에 조인 조건 부분을 CTE.MAX_PRICE = FP.MAX_PRICE로 해서 오류가 났었다. CTE에서 뽑은 최대 가격이랑 FOOD_PRODUCT의 가격과 비교해야됐던 것 !!!!! 풀수록 어려운 sql 문제....
최대값 최소값 같은 걸 구할 때에는 따로 테이블 만들어서 조인해서 구하기 기억 ~! 아니면 구한 max price랑 안 맞는 product_name이 나오거나 하더라....