728x90
코드 힌트
- 카테고리별 가장 비싼 음식 제품 찾기
- FOOD_PRODUCT 테이블에서 '과자', '국', '김치', '식용유' 카테고리에 해당하는 상품들 중 가장 높은 가격을 가진 상품을 추출합니다.
- 서브쿼리에서 각 카테고리별로 가장 높은 가격을 찾고, 그 결과를 메인 쿼리에서 조인하여 해당 가격의 제품 정보를 가져옵니다.
- 정렬 기준
- 가장 비싼 상품부터 내림차순으로 정렬되며, 동일한 가격의 제품이 여러 개일 경우에도 모두 표시됩니다.
정답은 더보기 클릭
더보기
더보기
SELECT FP.CATEGORY, FP.PRODUCT_NAME, FP.PRICE AS MAX_PRICE
-- FOOD_PRODUCT 테이블에서 카테고리, 제품명, 가격을 선택하되, 가격을 MAX_PRICE로 별칭 지정
FROM FOOD_PRODUCT FP
JOIN (
-- 서브쿼리: 각 카테고리별로 가장 비싼 가격을 추출
SELECT CATEGORY, MAX(PRICE) AS MAX_PRICE
-- 카테고리와 해당 카테고리 내에서 가장 높은 가격을 선택
FROM FOOD_PRODUCT
WHERE CATEGORY IN ('과자', '국', '김치', '식용유')
-- '과자', '국', '김치', '식용유' 카테고리에 속한 상품만 필터링
GROUP BY CATEGORY
-- 카테고리별로 그룹화하여 각 카테고리의 최대 가격을 찾음
) AS MAX_PRODUCTS
ON FP.CATEGORY = MAX_PRODUCTS.CATEGORY
AND FP.PRICE = MAX_PRODUCTS.MAX_PRICE
-- 메인 테이블과 서브쿼리를 카테고리 및 최대 가격으로 조인하여 가장 비싼 상품 정보를 가져옴
ORDER BY MAX_PRODUCTS.MAX_PRICE DESC;
-- 가장 비싼 가격부터 내림차순으로 정렬
728x90
'프로그래머스(Oracle)' 카테고리의 다른 글
[프로그래머스 (Oracle)] 조건에 맞는 사용자와 총 거래금액 조회하기 (1) | 2024.10.02 |
---|---|
[프로그래머스 (Oracle)] 대여 기록이 존재하는 자동차 리스트 구하기 (4) | 2024.10.02 |
[프로그래머스 (Oracle)] 보호소에서 중성화한 동물 (0) | 2024.10.01 |
[프로그래머스 (Oracle)] 오랜 기간 보호한 동물(1) (1) | 2024.09.26 |
[프로그래머스 (Oracle)] 진료과별 총 예약 횟수 출력하기 (0) | 2024.07.28 |