문제 : 

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

 

해결 방식 : 

select 식품id, 이름, 코드, 분류, 가격

max 

limit

 

결과 : 정답

 

답안 : LIMIT, ORDER BY 함수 사용 

SELECT *
FROM FOOD_PRODUCT
ORDER BY PRICE DESC
LIMIT 1

 

다른 풀이법 :  MAX 사용 

SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE
FROM FOOD_PRODUCT
WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT);

 

질문:  * WHERE PRICE = MAX(PRICE) 는 왜 안되는 걸까?

        >>  MAX를 사용하려면 집계된 데이터가 필요한데,  
              WHERE절은 데이터를 집계하기 전에 실행되고요.
              sql의 쿼리 실행순서에 대해서 찾아보세요

+ Recent posts