Roel Notebook

[SQL] 가격이 제일 비싼 식품의 정보 출력하기

by Roel Downey
728x90
반응형

[SQL] 가격이 제일 비싼 식품의 정보 출력하기

 

 

문제 

- 문제 링크: 프로그래머스

 

 

 

풀이

-> 쉽게 풀고 싶어서 해본 방법
Oracle로 풀었고 가격을 가장 비싼 식품을 정렬을 한 다음 제일 위에 있는 한줄을 뽑아 냈다. 

-- 코드를 입력하세요
SELECT PRODUCT_ID,PRODUCT_NAME,PRODUCT_CD,CATEGORY,PRICE
from (SELECT PRODUCT_ID,PRODUCT_NAME,PRODUCT_CD,CATEGORY,PRICE
from FOOD_PRODUCT
order by PRICE desc )
where rownum = 1;

MAX는 O(n) 이고 ORDER BY는 정렬이니 O(nlogn)이라 평균적으로 MAX가 더 빠르다.

또한 MAX 값이 여러 개인 경우 max()는 해당하는 모든 제품들을 다 보여주는데 limit을 이용하면 가장 큰 하나 밖에 안 보여준다.

SELECT *
FROM FOOD_PRODUCT
ORDER BY PRICE DESC LIMIT 1

 

SELECT *
FROM FOOD_PRODUCT
WHERE PRICE IN (SELECT MAX(PRICE)
               FROM FOOD_PRODUCT)

 

 

 

728x90
반응형

블로그의 정보

What doing?

Roel Downey

활동하기