DB/쿼리 문제풀이

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

sshhhh 2023. 10. 6.

1.가장 높은 가격 찾아냄

SELECT CATEGORY, MAX(PRICE) 
    FROM FOOD_PRODUCT 
    WHERE CATEGORY IN ('과자', '식용유', '국', '김치')
    GROUP BY CATEGORY

 

 

2.정답

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

<WHERE (CATEGORY, PRICE) IN (...)>

**(CATEGORY, PRICE)**는 서브쿼리에서 가져온 최대 가격 정보와 메인 쿼리의 각 물건의 카테고리와 가격을 의미합니다. 이렇게 함으로써 서브쿼리에서 찾은 각 카테고리별 최대 가격과, FOOD_PRODUCT 테이블의 각 물건의 카테고리와 가격을 비교하게 됩니다.

 

댓글