문제 설명
다음은 식품의 정보를 담은 FOOD_PRODUCT 테이블입니다. FOOD_PRODUCT 테이블은 다음과 같으며 PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE는 식품 ID, 식품 이름, 식품코드, 식품분류, 식품 가격을 의미합니다.

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

SQL을 실행하면 다음과 같이 출력되어야 합니다.

✏️ 풀이
SELECT CATEGORY, PRICE AS MAX_PRICE, PRODUCT_NAME
FROM FOOD_PRODUCT
WHERE (CATEGORY, PRICE) IN (SELECT CATEGORY, MAX(PRICE) AS PRICE
FROM FOOD_PRODUCT
WHERE CATEGORY IN ('과자', '국', '김치', '식용유')
GROUP BY CATEGORY)
ORDER BY 2 DESC;
MAX(PRICE)만 가지고 WHERE IN 조건을 줘도 된다
이것 말고 더 좋은 풀이 방법이 없나 찾아봤지만 딱히 좋다고 생각되는 풀이 방법은 없는 것 같다...🤔
'[코딩테스트] > [SQL]' 카테고리의 다른 글
[프로그래머스 Lv.4] 서울에 위치한 식당 목록 출력하기 (0) | 2025.04.04 |
---|---|
[프로그래머스 Lv.4] 5월 식품들의 총매출 조회하기 (0) | 2025.04.03 |
[프로그래머스 Lv.4] 우유와 요거트가 담긴 장바구니 (0) | 2025.04.02 |
[프로그래머스 Lv.4] 입양 시각 구하기(2) (0) | 2025.04.02 |
[프로그래머스 Lv.4] 보호소에서 중성화한 동물 (4) | 2025.04.01 |