Algorithm/Programmers SQL

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

제우제우 2024. 9. 11. 15:06

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

 

프로그래머스

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

programmers.co.kr

코딩테스트 연습 > SUM, MAX, MIN > 가격이 제일 비싼 식품의 정보 출력하기

 

문제 분석

난이도: LEVEL2

문제 요구사항

FOOD_PRODUCT 테이블에서 가격이 제일 비싼 식품의 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 조회하는 SQL문을 작성해주세요.

정답 코드1 (ORDER BY, LIMIT 활용)

SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE
FROM FOOD_PRODUCT
ORDER BY PRICE DESC
LIMIT 1

 

정답 코드2 (JOIN + FROM절 서브쿼리)

SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, F1.PRICE
FROM 
FOOD_PRODUCT F1 JOIN (SELECT MAX(PRICE) PRICE 
                      FROM FOOD_PRODUCT T
                     ) F2 
ON F1.PRICE = F2.PRICE

 

정답 코드3 (WHERE절 서브쿼리) 

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

 

성능 비교 

성능 측면은 당연히 정답 코드1이 제일 좋다. 불필요한 서브 쿼리 없이 단번에 조회해서 정렬하고 데이터를 가져오기 때문