꿈꾸는 개발자의 블로그
[프로그래머스] Oracle - (SQL 고득점 Kit) GROUP BY 식품분류별 가장 비싼 식품의 정보 조회하기 본문
Algorithm/Programmers
[프로그래머스] Oracle - (SQL 고득점 Kit) GROUP BY 식품분류별 가장 비싼 식품의 정보 조회하기
aldrn29 2023. 2. 21. 10:33문제
FOOD_PRODUCT 테이블에서 1) 식품분류별로 2) 가격이 제일 비싼 식품의 3) 분류, 가격, 이름을 조회하는 SQL문을 작성해주세요. 이때 4) 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력시켜 주시고 결과는 식품 가격을 기준으로 내림차순 정렬해주세요.
문제 풀이
- 식품분류별로 조회하기 위하여 GROUP BY로 묶는다.
- 가격이 가장 비싼 식품을 구하기 위하여 max 함수로 조회한다.
- 가격이 가장 비싼 식품의 분류, 가격만 뽑아낸 서브쿼리와 기존 쿼리를 JOIN하여 식품의 이름을 조회한다.
- 출력시킬 식품분류에 속해있는지 WHERE 조건을 통해 조회한다.
전체 코드
SELECT b.CATEGORY, b.MAX_PRICE, a.PRODUCT_NAME
FROM FOOD_PRODUCT a JOIN (
SELECT CATEGORY, max(PRICE) AS MAX_PRICE
FROM FOOD_PRODUCT
GROUP BY CATEGORY
) b ON a.CATEGORY = b.CATEGORY AND a.PRICE = b.MAX_PRICE
WHERE a.CATEGORY IN ('과자', '국', '김치', '식용유')
ORDER BY 2 DESC
728x90
728x90
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스] Oracle - (SQL 고득점 Kit) GROUP BY 카테고리 별 도서 판매량 집계하기 (0) | 2023.02.21 |
---|---|
[프로그래머스] Oracle - (SQL 고득점 Kit) GROUP BY 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (0) | 2023.02.21 |
[프로그래머스] Oracle - (SQL 고득점 Kit) GROUP BY 진료과별 총 예약 횟수 출력하기 (0) | 2023.02.21 |
[프로그래머스] Oracle - (SQL 고득점 Kit) IS NULL 문제 풀이 (0) | 2023.02.20 |
[프로그래머스] Oracle - (SQL 고득점 Kit) SUM,MAX,MIN 문제 풀이 (0) | 2023.02.20 |
Comments