SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE
FROM (
SELECT *
FROM FOOD_PRODUCT
ORDER BY PRICE DESC
)
WHERE ROWNUM <= 1
;
주의!
-- 코드를 입력하세요
SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE
FROM FOOD_PRODUCT
WHERE MAX(PRICE) IN PRICE
;
이건 안된다. 마지막 줄에 저렇게 사용할 수가 없단다.
"MAX(PRICE) IN PRICE"는 SQL 구문에서 사용할 수 없습니다. IN 연산자는 왼쪽에 있는 값을 오른쪽의 값 중 하나와 비교합니다. 그러나 MAX(PRICE)는 집계 함수이므로 왼쪽에 있는 값을 집계하지 않습니다.
가장 높은 가격을 가진 상품을 필터링하고 싶다면, 서브쿼리나 조인을 사용하여야 합니다. 다음은 가장 높은 가격을 가진 상품의 정보를 가져오는 쿼리입니다.
SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE
FROM FOOD_PRODUCT
WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT);
아니면
SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE
FROM FOOD_PRODUCT
WHERE (SELECT MAX(PRICE) FROM FOOD_PRODUCT) IN PRICE;
'DataEngineering' 카테고리의 다른 글
SQL 프로그래머스 문제 - 조건에 부합하는 중고거래 상태 조회하기 (0) | 2024.05.14 |
---|---|
SQL 프로그래머스 문제 - 중복 제거하기 (0) | 2024.05.14 |
SQL 프로그래머스 문제 - 가격이 제일 비싼 식품의 정보 출력하기 (0) | 2024.05.14 |
SQL 프로그래머스 문제 - 입양 시각 구하기(1)(중요!) (0) | 2024.05.14 |
SQL 프로그래머스 문제 - 가격대 별 상품 개수 구하기(중요!) (0) | 2024.05.14 |