SQL 문제

문제 48. 식품분류별 가장 비싼 식품의 정보 조회하기(난이도 10)(다중 컬럼 IN)

kagan-draca 2024. 7. 24. 17:05

 

 

이전 문제의 복습문제로 다중 컬럼 IN문제가 나온 것 같다.

 

아직은 익숙지가 않아서 IN안의 SELECT문의 컬럼들을 바꿔보면서 풀어 봤다.

 

다중 컬럼 IN을 사용하는데 있어서 약간의 힌트? 인 것 같은 부분은

 

"식품분류별로 가격이 제일 비싼 식품의"라는 부분

WHERE (CATEGORY, PRICE) IN()으로 사용해야한다고

알려주는 것 같고,

 

IN
(
    SELECT CATEGORY, MAX(PRICE)

)

로 IN안의 SELECT 하고자 하는 컬럼명들을 알려주는 것 같다(개인적인 추측)

 

마지막으로, GROUP BY CATEGORY로 묶인 결과 중

식품분류가 '과자', '국', '김치', '식용유'만 출력돼야

하기 때문에

 

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

 

로 만들어줬다.

 

제출한 코드 : 

 

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