본문 바로가기
Algorithm/프로그래머스

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

by whdgus928 2023. 1. 3.

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제

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

 

틀린 코드

SELECT CATEGORY,max(PRICE) as MAX_PRICE,PRODUCT_NAME
from FOOD_PRODUCT
where CATEGORY In ('과자', '국', '김치','식용유')
group by CATEGORY
order by MAX_PRICE desc

정답

SELECT CATEGORY,PRICE as MAX_PRICE,	PRODUCT_NAME
from FOOD_PRODUCT
where price in (
    select max(price)
    from FOOD_PRODUCT
    group by CATEGORY)
    and CATEGORY In ('과자', '국', '김치','식용유')
order by MAX_PRICE desc

 

틀린 이유: max로 조회하면 해당 컬럼에 대한 값만 나올뿐 행 전체가 나오지 않는다. 그래서 서브 쿼리로 걸러주고 조회해야한다.

 

1. 서브쿼리로 카테고리별 가격이 비싼 식품을 조회한다

2. where CATEGORY In () 구문으로 원하는 분류를 설정한다

 

반응형

댓글