처음엔 서브쿼리 안쓰고 SELECT 한 번만에 되는 줄 알고 완전 쉽네! 했다가
GROUP BY CATEGORY로 묶고 PRODUCT_NAME을 출력해버리면 그냥 제일 상위의 값이 나온다는걸 뒤늦게 알아버렸다.
그래서 먼저
1. CATEGORY 그룹별로 최대 MAX 값을 찾고
SELECT CATEGORY, MAX(PRICE)
FROM FOOD_PRODUCT
WHERE CATEGORY IN ('과자', '국', '김치', '식용유')
GROUP BY CATEGORY
2. 전체 FOOD_PRODUCT 테이블에서 해당 CATEGORY와 PRICE에 해당하는 값의 CATEGORY, PRICE, PRODUCT_NAME을 출력해줬다.
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 PRICE DESC
'코딩테스트 연습 > programmers' 카테고리의 다른 글
| [프로그래머스] 업그레이드 된 아이템 구하기 - MYSQL (0) | 2025.10.25 |
|---|---|
| [프로그래머스] 년, 월, 성별 별 상품 구매 회원 수 구하기 - MYSQL (0) | 2025.10.21 |
| [프로그래머스] 입국 심사 - JAVA (0) | 2025.10.20 |
| [프로그래머스] 여행경로 - JAVA (0) | 2025.10.19 |
| [프로그래머스] 저자 별 카테고리 별 매출액 집계하기 - MYSQL (0) | 2025.10.19 |