728x90
문제 설명
다음은 식품의 정보를 담은 FOOD_PRODUCT 테이블입니다. FOOD_PRODUCT 테이블은 다음과 같으며 PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE는 식품 ID, 식품 이름, 식품코드, 식품분류, 식품 가격을 의미합니다.
문제
FOOD_PRODUCT 테이블에서 식품분류별로 가격이 제일 비싼 식품의 분류, 가격, 이름을 조회하는 SQL문을 작성해주세요. 이때 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력시켜 주시고 결과는 식품 가격을 기준으로 내림차순 정렬해주세요.
내 풀이(오답)
SELECT CATEGORY , MAX(PRICE) AS MAX_PRICE, PRODUCT_NAME
FROM FOOD_PRODUCT
GROUP BY CATEGORY
HAVING CATEGORY IN ('과자', '국', '김치', '식용유')
ORDER BY PRICE DESC
- 식품분류별로 '가장 비싼 식품'을 먼저 구한 다음에 그 식품들의 정보를 추출해야 함
- 내 풀이는 식품분류별로 '가장 비싼 식품만'을 구한 것
풀이
SELECT CATEGORY, PRICE, PRODUCT_NAME
FROM FOOD_PRODUCT
WHERE CATEGORY IN ('과자', '국', '김치', '식용유')
AND (PRICE, CATEGORY) IN (
SELECT MAX(PRICE), CATEGORY
FROM FOOD_PRODUCT
WHERE CATEGORY IN ('과자', '국', '김치', '식용유')
GROUP BY CATEGORY
)
ORDER BY PRICE DESC;
- WHERE CATEGORY IN ('과자', '국', '김치', '식용유'): 해당 카테고리만 선택하도록 필터링
- SELECT MAX(PRICE), CATEGORY: 각 카테고리별로 가장 비싼 가격을 선택
- GROUP BY CATEGORY: 카테고리별로 그룹화하여 가장 비싼 가격
- AND (PRICE, CATEGORY) IN (SELECT MAX(PRICE), CATEGORY ...): 각 카테고리에서 가장 높은 가격을 가진 제품을 선택
728x90
'SQL > 프로그래머스 고득점 kit' 카테고리의 다른 글
[프로그래머스] SQL 고득점 kit(월별 잡은 물고기 수 구하기) (0) | 2024.11.04 |
---|---|
[프로그래머스] SQL 고득점 kit(연도 별 평균 미세먼지 농도 조회하기) (1) | 2024.09.24 |
[프로그래머스] SQL 고득점 kit(보호소에서 중성화한 동물) (1) | 2024.06.30 |
[프로그래머스] SQL 고득점 kit(부서별 평균 연봉 조회하기) (0) | 2024.06.23 |
[프로그래머스] SQL 고득점 kit(물고기 종류 별 잡은 수 구하기) (0) | 2024.06.11 |