[MySQL] 프로그래머스 / level 2 / 조건에 맞는 행 출력하 / 서브쿼리

2024. 3. 14. 08:20Coding Test/MySQL

https://school.programmers.co.kr/learn/courses/30/lessons/131115#qna

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

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

 

이렇게 하게 될 경우 PRICE의 가격만 최대값이 나오고 ID와 NAME과 같은 것들은 PRICE와 일치하지 않는 것들이 출력됨!

매우 하기 쉬운 실수인것 같다.

그렇기에 다음과 같이 서브쿼리를 이용해야 일치하는 행이 출력된다.

 

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