프로그래머스 SQL LEVEL4 "식품분류별 가장 비싼 식품의 정보 조회하기"
2025. 7. 20. 00:41ㆍ코딩테스트
문제 설명
다음은 식품의 정보를 담은 FOOD_PRODUCT 테이블입니다. FOOD_PRODUCT 테이블은 다음과 같으며 PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE는 식품 ID, 식품 이름, 식품코드, 식품분류, 식품 가격을 의미합니다.
Column nameTypeNullablePRODUCT_ID | VARCHAR(10) | FALSE |
PRODUCT_NAME | VARCHAR(50) | FALSE |
PRODUCT_CD | VARCHAR(10) | TRUE |
CATEGORY | VARCHAR(10) | TRUE |
PRICE | NUMBER | TRUE |
문제
FOOD_PRODUCT 테이블에서 식품분류별로 가격이 제일 비싼 식품의 분류, 가격, 이름을 조회하는 SQL문을 작성해주세요. 이때 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력시켜 주시고 결과는 식품 가격을 기준으로 내림차순 정렬해주세요.
문제 요구사항
-- 식품의 분류, 가격, 이름 조회
-- 식품 분류별 가장 가격이 비싼 식품
-- '과자', '국', '김치', '식용유'
-- 식품가격 기준 내림차순
쿼리문
SELECT
CATEGORY,
PRICE AS MAX_PRICE,
PRODUCT_NAME
FROM FOOD_PRODUCT
WHERE CATEGORY IN ('과자', '국', '김치', '식용유')
AND (CATEGORY, PRICE) IN (
SELECT CATEGORY, MAX(PRICE)
FROM FOOD_PRODUCT
WHERE CATEGORY IN ('과자', '국', '김치', '식용유')
GROUP BY CATEGORY
)
ORDER BY PRICE DESC;
풀이
1. WHERE 절을 통한 '과자', '국', '김치', '식용유' 카테고리만 추출하도록 "WHERE CATEGORY IN ('과자', '국', '김치', '식용유')"
2. AND (CATEGORY, PRICE) IN 을 통해 CATEGORY와 PRICE에서 어떤 값을 가져올지 설정
3. 서브 쿼리문을 통해 CATEGORY, PRICE 에서 어떤 값을 가져와야하는지 설정
'코딩테스트' 카테고리의 다른 글
프로그래머스 SQL LEVEL5 "상품을 구매한 회원 비율 구하기" (3) | 2025.07.22 |
---|---|
프로그래머스 SQL LEVEL4 "언어별 개발자 분류하기" (0) | 2025.07.22 |
프로그래머스 SQL LEVEL4 "보호소에서 중성화한 동물" (1) | 2025.07.19 |
프로그래머스 SQL LEVEL4 "우유와 요거트가 담긴 장바구니" (0) | 2025.07.19 |
[Python] Python 코딩테스트 Level 1 (0) | 2024.05.19 |