꿈은 데이터분석가, 취미는 계획

[MY SQL] 특정 그룹에서 가장 비싼 제품의 정보 가져오기 본문

SQL/sql문풀

[MY SQL] 특정 그룹에서 가장 비싼 제품의 정보 가져오기

data_2080 2024. 4. 16. 20:59
728x90

출처: [프로그래머스 스쿨 - 코딩테스트 연습 - MY SQL 문제] :  식품 분류별 가장 비싼 식품의 정보 조회하기

링크: https://school.programmers.co.kr/learn/courses/30/lessons/131116


문제(일부): 식품분류별로 가격이 제일 비싼 식품의 분류, 가격, 이름을 조회, 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력

 

서브쿼리 활용하기

서브쿼리에 카테고리별 제일 비싼 가격을 조회메인쿼리에서 서브쿼리와 일치하는 카테고리와 가격을 조회
* 서브쿼리 없이 카테고리로 group by 후 MAX(PRICE)를 쓸 경우 최대 가격은 맞지만 카테고리나 제품 이름은 일치x

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 MAX_PRICE DESC
728x90