문제
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) 를 쓰는 것이 더 올바르고 빠른 방법인 것 같다.
'문제 풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 최솟값 구하기 (0) | 2024.10.26 |
---|---|
[프로그래머스] 최댓값 구하기(SQL) (1) | 2024.10.26 |
[프로그래머스] 가장 비싼 상품 구하기(SQL) (0) | 2024.10.24 |
[프로그래머스] 단어 변환(JAVA) (0) | 2024.05.06 |
[프로그래머스] 카펫(JAVA) (0) | 2024.05.05 |