https://school.programmers.co.kr/learn/courses/30/lessons/131115
코딩테스트 연습 > 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이 제일 좋다. 불필요한 서브 쿼리 없이 단번에 조회해서 정렬하고 데이터를 가져오기 때문
'Algorithm > Programmers SQL' 카테고리의 다른 글
[MySQL] 프로그래머스 입양 시각 구하기(1) (2) | 2024.09.11 |
---|---|
[MySQL] 프로그래머스 DATETIME에서 DATE로 형 변환 (0) | 2024.09.11 |
[MySQL] 프로그래머스 3월에 태어난 여성 회원 목록 출력하기 (1) | 2024.09.11 |
[MySQL] 프로그래머스 카테고리 별 상품 개수 구하기 (1) | 2024.09.10 |
[MySQL] 프로그래머스 가격대 별 상품 개수 구하기 (0) | 2024.09.10 |