728x90
https://school.programmers.co.kr/learn/courses/30/lessons/131116
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
Group By 를 사용한 후 원하는 것을 가져오는 문제이다.
서브쿼리를 통해 카테고리와 최대 가격을 가져오고 이것을 join 하거나 in 연산자를 사용하면된다.
1. join 사용
SELECT FP.CATEGORY, VALUE.MAX_PRICE, FP.PRODUCT_NAME
FROM FOOD_PRODUCT AS FP
JOIN
(
SELECT CATEGORY, MAX(PRICE) AS MAX_PRICE
FROM FOOD_PRODUCT
GROUP BY CATEGORY
HAVING
CATEGORY = "식용유" OR CATEGORY = "국"
OR CATEGORY = "김치" OR CATEGORY = "과자"
) AS VALUE
ON FP.CATEGORY = VALUE.CATEGORY AND FP.PRICE = VALUE.MAX_PRICE
ORDER BY VALUE.MAX_PRICE DESC;
2. in 사용
SELECT CATEGORY, PRICE AS MAX_PRICE, PRODUCT_NAME FROM FOOD_PRODUCT
WHERE (CATEGORY, PRICE) IN
(
SELECT CATEGORY, MAX(PRICE) AS MAX_PRICE
FROM FOOD_PRODUCT
GROUP BY CATEGORY
HAVING
CATEGORY = "식용유" OR CATEGORY = "국"
OR CATEGORY = "김치" OR CATEGORY = "과자"
)
ORDER BY MAX_PRICE DESC;
'프로그래머스 풀이 > Lv 4' 카테고리의 다른 글
[프로그래머스 SQL] 5월 식품들의 총매출 조회하기 [ORACLE] (0) | 2025.01.25 |
---|---|
프로그래머스 - [3차]자동완성 (C++) (0) | 2023.02.24 |