SQL 알고리즘 코드카타

SQL 알고리즘 코드카타 8일차(3) 26.01.06(화)

nom_de_plume 2026. 1. 6. 11:50

부제: 가격이 제일 비싼 식품의 정보 출력하기, 레벨 2

 

1. 문제 링크:https://school.programmers.co.kr/learn/courses/30/lessons/131115

2. 정답 코드:

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

3. 오류 상황:

SELECT
    PRODUCT_ID,
    PRODUCT_NAME,
    PRODUCT_CD,
    CATEGORY,
    MAX(PRICE) AS PRICE
FROM FOOD_PRODUCT

=> SELECT문에 MAX()를 사용하면 PRICE는 가장 비싼 값이 출력될 수 있지만, PRODUCT_ID나 PRODUCT_NAME은 그냥 맨 위에 있는 데이터를 가져와 매칭이 안되서 오류 발생

4. 시도 방법: 서브 쿼리 이용

5. 최종 문제 해결 방법: WHERE문에 서브쿼리를 작성해 가장 비싼 값만을 쓰겠다고 전체 조건을 걸어준다.