문제
https://school.programmers.co.kr/learn/courses/30/lessons/131116
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
서브쿼리로 나누어서 문제를 해결할 수 있었다.
유심히 봐야할 서브쿼리는 B 테이블인데 MAX 함수를 이용해서 PRICE 컬럼의 최댓값을 가져온다.
대신 식품별로 가져와야하기 때문에 GROUP BY를 사용하여 식품별 PRICE 컬럼의 최댓값을 가져올 수 있도록 해주고, IN 구문을 사용해서 문제에서 요구하는 식품종류만 가져올 수 있도록 처리해줘야 한다.
후에 B 테이블에서 조회된 ROW들을 바탕으로 메인쿼리에서 검증해주면 문제를 해결할 수 있다.
쿼리
SELECT
A.CATEGORY,
B.MAX_PRICE,
A.PRODUCT_NAME
FROM
(SELECT
*
FROM
FOOD_PRODUCT
) AS A,
(SELECT
PRODUCT_ID,
CATEGORY,
MAX(PRICE) AS MAX_PRICE
FROM
FOOD_PRODUCT
WHERE
CATEGORY
IN ('국', '과자', '김치', '식용유')
GROUP BY
CATEGORY
) AS B
WHERE
A.CATEGORY = B.CATEGORY
AND
A.PRICE = B.MAX_PRICE
ORDER BY
MAX_PRICE DESC
'프로그래머스-SQL' 카테고리의 다른 글
[프로그래머스-SQL] 프로그래머스 SQL Level3 성조건별로 분류하여 주문상태 출력하기 MySQL (0) | 2022.10.31 |
---|---|
[프로그래머스-SQL] 프로그래머스 SQL Level2 성분으로 구분한 아이스크림 총 주문량 MySQL (0) | 2022.10.28 |
[프로그래머스-SQL] 프로그래머스 SQL Level3 즐겨찾기가 가장 많은 식당 정보 출력하기 MySQL (0) | 2022.10.12 |
[프로그래머스-SQL] 프로그래머스 SQL Level1 경기도에 위치한 식품창고 목록 출력하기 MySQL (0) | 2022.10.12 |
[프로그래머스-SQL] 프로그래머스 SQL Level2 가격이 제일 비싼 식품의 정보 출력하기 MySQL (0) | 2022.10.11 |