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

장우솔·2023년 8월 14일
0

알고리즘

목록 보기
17/21

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

문제

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

틀린 코드

SELECT category, max(price) as max_price, PRODUCT_NAME
from food_product
group by category
having category ="과자" or category ="국" or category ="김치" or 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 price desc

틀린 이유 : max로 조회하면 해당 컬럼에 해당하는 max 값만 나오고 max 컬럼과 관련된 행 전체가 나오지 않아서 한 행에 다른 컬럼 값이 나온다. 따라서 서브쿼리로 추출해야한다.

: 여러 개 포함할 땐 "="보다는 "in"으로 한번에 묶으면 편함.

profile
공부한 것들을 정리하는 블로그

0개의 댓글