프로그래머스 SQL kit

[GROUP BY] 식품분류별 가장 비싼 식품의 정보 조회하기/

정호나 2024. 11. 5. 10:08

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

문제

 

FOOD_PRODUCT 테이블에서 식품분류별로 가격이 제일 비싼 식품의 분류, 가격, 이름을 조회하는 SQL문을 작성해주세요. 이때 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력시켜 주시고 결과는 식품 가격을 기준으로 내림차순 정렬해주세요.

 

실행결과

 

 

SELECT F2.CATEGORY, MAX_PRICE, F1.PRODUCT_NAME
FROM FOOD_PRODUCT F1
    JOIN( 
        SELECT CATEGORY, MAX(PRICE) AS MAX_PRICE
     FROM FOOD_PRODUCT
     GROUP BY CATEGORY) AS F2
    ON F1.CATEGORY = F2.CATEGORY
    
WHERE F1.PRICE = MAX_PRICE 
AND F2.CATEGORY IN ('과자','국','식용유','김치')
ORDER BY MAX_PRICE DESC
JOIN코드

 

   SELECT CATEGORY, MAX(PRICE) AS MAX_PRICE
     FROM FOOD_PRODUCT
     GROUP BY CATEGORY

 

 

 

 

내 코드 오류
SELECT CATEGORY, MAX(PRICE) AS MAX_PRICE, PRODUCT_NAME
FROM FOOD_PRODUCT 
WHERE CATEGORY IN ('과자','국','식용유','김치')
GROUP BY CATEGORY
ORDER BY MAX_PRICE DESC

 

 

 

product_name이 결과랑 일치하지 않다

서브쿼리 만들어서 join 연산해야함

 

 

 

알게된 점

EXISTS 는 서브쿼리랑 쓰임, 단독으로 쓰이지 않음