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