문제 풀이/프로그래머스

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

27200 2024. 10. 24. 20:16

문제

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


풀이

SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE // MAX_PRICE를 제외하기 위함
FROM FOOD_PRODUCT P // 원래의 테이블
INNER JOIN (SELECT MAX(PRICE) AS MAX_PRICE FROM FOOD_PRODUCT) MAX_PRODUCT // 조인 할 테이블
ON P.PRICE = MAX_PRODUCT.MAX_PRICE; // 가격이 같은 것만

 

최대 값이 담겨있는 테이블을 먼저 만든 뒤 이에 대한 INNER JOIN 을 실행했다. 물론 정답이기도 하고 코드도 동작하지만 문법 상 최고의 선택은 아닌 것 같다.

 

이후에 생각을 해보니 그냥 내림차순으로 정렬한 뒤에 LIMIT 1을 걸어주거나 WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT) 를 쓰는 것이 더 올바르고 빠른 방법인 것 같다.