OkBublewrap

가격이 제일 비싼 식품의 정보 출력하기 본문

개발/SQL

가격이 제일 비싼 식품의 정보 출력하기

옥뽁뽁 2023. 2. 26. 14:52

문제

FOOD_PRODUCT 테이블에서 가격이 제일 비싼 식품의 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 조회하는 SQL문을 작성해주세요.


예시

FOOD_PRODUCT 테이블이 다음과 같을 때

PRODUCT_ID PRODUCT_NAME PRODUCT_CD CATEGORY PRICE
P0018 맛있는고추기름 CD_OL00008 식용유 6100
P0019 맛있는카놀라유 CD_OL00009 식용유 5100
P0020 맛있는산초유 CD_OL00010 식용유 6500
P0021 맛있는케첩 CD_OL00001 소스 4500
P0022 맛있는마요네즈 CD_OL00002 소스 4700

SQL을 실행하면 다음과 같이 출력되어야 합니다.

PRODUCT_ID PRODUCT_NAME EPRODUCT_CD CATEGORY PRICE
P0020 맛있는산초유 CD_OL00010 식용유 6500

<코드>

SELECT *
FROM FOOD_PRODUCT
ORDER BY PRICE DESC
LIMIT 1;
PRODUCT_ID PRODUCT_NAME PRODUCT_CD  CATEGORY  PRICE
P0051 맛있는배추김치 CD_KC00001 김치 19000

MAX 함수를 사용하지 않아도 이렇게 풀 수가 있다.

 

<MAX 함수>

SELECT *, MAX(PRICE)
FROM FOOD_PRODUCT
PRODUCT_ID PRODUCT_NAME PRODUCT_CD CATEGORY PRICE MAX(PRICE)
P0001 맛있는라면 CD_ND00001 3780 19000

MAX(PRICE)를 이용해서 풀면 정답으로 처리가 되는 줄 았는데 위 ORDER BY로 푼 것이랑 결과 값이 다르다. 그리고 PRICE의 MAX가 매칭되지 않은 첫번째 행값을 가져왔다. 조건을 이용해서 MAX인 값(맛있는배추)을 찾아야 할 것 같다.

 

<MAX 조건절>

SELECT *
FROM FOOD_PRODUCT
WHERE PRICE = 
    (SELECT MAX(PRICE) FROM FOOD_PRODUCT)
PRODUCT_ID PRODUCT_NAME PRODUCT_CD  CATEGORY  PRICE
P0051 맛있는배추김치 CD_KC00001 김치 19000