
프로그래머스 SQL 고득점 KIT, SUM, MAX, MIN
Level 2. 가격이 제일 비싼 식품의 정보 출력하기
FOOD_PRODUCT 테이블에서 가격이 제일 비싼 식품의 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 조회하는 SQL문을 작성해주세요.
정답 확인
SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE
FROM FOOD_PRODUCT
WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT)
어려웠던 부분
WHERE절에서집계함수서브쿼리의 사용 주의!
SELECT절에서 집계함수 사용 SELECT PRODUCT_ID, MAX(PRICE)
FROM FOOD_PRODUCT;
MAX(PRICE)PRODUCT_ID (EX. A,B,C,D,..) 와 MAX(PRICE)를 비교해야할지 모름.WHERE절에서 집계함수 사용SELECT PRODUCT_ID, PRICE
FROM FOOD_PRODUCT
WHERE PRICE = MAX(PRICE);
WHERE절에서는 각 행단위 조건 비교해야함.PRICE (개별행)과 MAX(PRICE) (테이블 전체 값)을 비교할 수 없음.무엇보다
WHERE절에서서브쿼리없이집계함수사용 불가!!
그럼 정답은 왜 정답인가
SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE
FROM FOOD_PRODUCT
WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT);
SELECT MAX(PRICE) FROM FOOD_PRODUCT 최대 가격 단일값 반환 EX. 1,000원.WHERE PRICE = 1000 각 행의 PRICE와 비교 가능.WHERE 개별행과 단일값을 비교 가능! 오류 없음.