Programming/SQL

[프로그래머스] 가격이 제일 비싼 식품의 정보 출력하기

왕밤빵도라에몽 2025. 4. 10. 13:22
728x90
WHERE PRICE = (SELECT MAX(PRICE)
               FROM FOOD_PRODUCT);
  • 서브쿼리로 FOOD_PRODUCT 테이블에서 MAX(PRICE)를 구하고
  • 그 가격과 일치하는 행을 다 가져옴
  • 그런 행이 여러개면? 여러개 가져옴

아래 방식은 오답

SELECT
    PRODUCT_ID,
    PRODUCT_NAME,
    PRODUCT_CD,
    CATEGORY,
    MAX(PRICE)
FROM FOOD_PRODUCT
  • 이렇게하면 그룹핑(GROUP BY)안 한 상태로 집계함수만 쓴거라서
  • MAX(PRICE)를 구할 때 테이블 전체에서 가장 큰 값이 나옴
  • PRICE 컬럼은 MAX가 나오는데, 나머지 컬럼들은 무작위값으로 나옴

전체 코드

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