반응형
FOOD_PRODUCT 테이블에서 가격이 제일 비싼 식품의 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 조회하는 SQL문을 작성해주세요.
WHERE문 안에서는 PRICE=MAX(PRICE) 이런식으로 접근할 수 없다. 따라서 MAX(PRICE)의 값을 가져오려면 서브쿼리를 이용해서 MAX(PRICE) 값을 가져올 수 있도록 해야한다.
SELECT MAX(PRICE) FROM FOOD_PRODUCT를 서브쿼리로 해서 MAX(PRICE)값을 가져오고 그 값이 PRICE와 같으면 해당 정보를 조회하도록 한다.
최종 코드는 아래와 같다.
SELECT * FROM FOOD_PRODUCT WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT);
= 대신에 IN을 써도 무방하다.
**
다른 사람들의 풀이를 보다가 PRICE에 대해 내림차순 정렬 후 LIMIT 1 을 사용해서 조회한 풀이를 발견하였다.
그런데, 내 생각에는, LIMIT 1을 할 시 , 동일하게 MAX PRICE를 갖는 레코드에 대해서는 하나의 레코드만 출력되는 예외가 발생할 수 있기 때문에, 서브쿼리를 이용한 풀이가 더 맞다고 본다.
반응형
'CO-TE > 프로그래머스' 카테고리의 다른 글
[프로그래머스] JAVA LV2 "가장 큰 수" 풀이 방법 / Arrays.sort / 람다식 사용 (1) | 2023.10.19 |
---|---|
[프로그래머스] MYSQL LV3 조건에 맞는 사용자와 총 거래금액 조회하기 / GROUP BY 이용 (0) | 2023.10.19 |
[프로그래머스] JAVA / c++ LV2 전화번호 목록 / 해시알고리즘, SORT 풀이 (2) (0) | 2023.10.18 |
[프로그래머스] JAVA / c++ LV2 전화번호 목록 / 해시알고리즘, SORT 풀이 (1) (1) | 2023.10.18 |
[프로그래머스] MYSQL LV4 주문량이 많은 아이스크림들 조회하기 / UNION ALL 이용 (1) | 2023.10.18 |