문제 :
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의 쿼리 실행순서에 대해서 찾아보세요
'SQL > 프로그래머스' 카테고리의 다른 글
[Lv.2] 카테고리 별 상품 개수 구하기 (STRING, 문자열 함수) (0) | 2024.11.07 |
---|---|
[Lv.3] 대여 기록이 존재하는 자동차 리스트 구하기 (LEFT JOIN, GROUP BY) (0) | 2024.11.07 |
[Lv.2] NULL 처리하기 (0) | 2024.11.06 |
[Lv.2] 이름에 el이 들어가는 동물 찾기 (LIKE) (0) | 2024.11.06 |
[Lv.1] 조건에 부합하는 중고거래 댓글 조회하기 (INNER JOIN, LIKE) (0) | 2024.11.04 |