less than 1 minute read

📜문제


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

image

📜정답


    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

📜노트


처음에 작성했던 코드로 오답이다.

  SELECT CATEGORY,MAX(PRICE)AS MAX_PRICE,PRODUCT_NAME FROM FOOD_PRODUCT 
  GROUP BY CATEGORY HAVING CATEGORY IN('과자','국','김치','식용유')
  ORDER BY MAX_PRICE DESC

MAX로 조회하면 PRICE값만 나올 뿐 행 전체가 MAX값에 맞춰 나오지 않는다.
때문에 서브쿼리를 사용해 MAX(PRICE)값을 조회하고 그 조회한 값을 기준으로 CATEGORY,MAX_PRICE,PRODUCT_NAME를 조회해야 한다.