문제
- 프로그래머스 SQL 문제
가격이 제일 비싼 식품의 정보 출력하기
/ 레벨 2
- 문제 내용 : 하단 프로그래머스 문제 링크 참조
FOOD_PRODUCT 테이블에서 가격이 제일 비싼 식품의 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 조회하는 SQL문을 작성해주세요.
내가 작성한 Query (1)
SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE
FROM FOOD_PRODUCT
WHERE PRICE = (
SELECT MAX(PRICE)
FROM FOOD_PRODUCT
);
WHERE
조건에 'PRICE'의 가격이 'PRICE의 MAX
값일 때' 조건을 주어 필터링 하는 방법으로 문제 접근
- 서브쿼리를 통해 'PRICE'의 최대값 추출
- 문제 조건에 맞게 'PRODUCT_ID', 'PRODUCT_NAME', 'PRODUCT_CD', 'CATEGORY', 'PRICE' 추출
내가 작성한 Query (2)
SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE
FROM FOOD_PRODUCT
ORDER BY PRICE DESC
LIMIT 1;
ORDER BY
를 이용해 'PRICE' 컬럼을 기준으로 내림차순으로 정렬 (가장 비싼 가격이 위로 정렬)
- 이후
LIMIT
을 이용하여 가장 최상위 1개의 데이터를 추출 (상위 1개의 데이터 추출)
내가 작성한 Query (3)
SELECT MAX(PRICE)
FROM FOOD_PRODUCT;
SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE
FROM FOOD_PRODUCT
WHERE PRICE = 19000;
- 먼저
MAX(PRICE)
를 통해 PRICE의 최대값이 얼마인지를 확인 (19000)
- 이후
WHERE
절에 PRICE가 19000 인 데이터만을 필터링하여 출력
- 쿼리를 2번 돌려야하는 번거로움이 있지만, 하나의 방법이 될 수 있으니 정리해놓기
