노아

[프로그래머스] 식품분류별 가장 비싼 식품의 정보 조회하기 본문

알고리즘/SQL

[프로그래머스] 식품분류별 가장 비싼 식품의 정보 조회하기

Noaahhh 2024. 9. 16. 17:53

 

Question

 

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

 

 

Pseudocode

 

 

  1. 서브쿼리에서 FOOD_PRODUCT 테이블을 CATEGORY별로 그룹화하여 각 카테고리의 최대 가격(MAX_PRICE)을 계산.
  2. 이 서브쿼리 결과를 F2라는 별칭으로 저장.
  3. FOOD_PRODUCT 테이블을 F2와 CATEGORY를 기준으로 조인.
  4. FOOD_PRODUCT 테이블의 PRICE가 서브쿼리에서 계산한 MAX_PRICE와 같은 행을 필터링.
  5. CATEGORY가 '과자', '국', '김치', 또는 '식용유'인 카테고리만 선택.
  6. MAX_PRICE를 기준으로 내림차순 정렬.
  7. 결과로 CATEGORY, MAX_PRICE, PRODUCT_NAME을 선택.

 

 

 

Code

 

SELECT F2.CATEGORY, MAX_PRICE, PRODUCT_NAME
FROM FOOD_PRODUCT F1 JOIN (
    SELECT CATEGORY, MAX(PRICE) AS MAX_PRICE
    FROM FOOD_PRODUCT
    GROUP BY CATEGORY) AS F2
ON F1.CATEGORY = F2.CATEGORY
WHERE F1.PRICE = MAX_PRICE 
AND F2.CATEGORY IN('과자', '국', '김치', '식용유')
ORDER BY MAX_PRICE DESC