Notice
Recent Posts
Recent Comments
Archives
반응형
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Today
Total
11-15 01:24
250x250
관리 메뉴

꿈꾸는 개발자의 블로그

[프로그래머스] 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) 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력시켜 주시고 결과는 식품 가격을 기준으로 내림차순 정렬해주세요.

 

문제 풀이

  1. 식품분류별로 조회하기 위하여 GROUP BY로 묶는다.
  2. 가격이 가장 비싼 식품을 구하기 위하여 max 함수로 조회한다.
  3. 가격이 가장 비싼 식품의 분류, 가격만 뽑아낸 서브쿼리와 기존 쿼리를 JOIN하여 식품의 이름을 조회한다.
  4. 출력시킬 식품분류에 속해있는지 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
Comments