가격이 제일 비싼 식품의 정보 출력하기
https://school.programmers.co.kr/learn/courses/30/lessons/131115
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1) 문제
다음은 식품의 정보를 담은 FOOD_PRODUCT 테이블입니다. FOOD_PRODUCT 테이블은 다음과 같으며 PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE는 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 의미합니다.
FOOD_PRODUCT 테이블에서 가격이 제일 비싼 식품의 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 조회하는 SQL문을 작성해주세요.
Column name
Type
Nullable
PRODUCT_ID
VARCHAR(10)
FALSE
PRODUCT_NAME
VARCHAR(50)
FALSE
PRODUCT_CD
VARCHAR(10)
TRUE
CATEGORY
VARCHAR(10)
TRUE
PRICE
NUMBER
TRUE
2) 예시
예를 들어 FOOD_PRODUCT 테이블이 다음과 같다면
PRODUCT_ID
PRODUCT_NAME
PRODUCT_CD
CATEGORY
PRICE
P0018
맛있는고추기름
CD_OL00008
식용유
6100
P0019
맛있는카놀라유
CD_OL00009
식용유
5100
P0020
맛있는산초유
CD_OL00010
식용유
6500
P0021
맛있는케첩
CD_OL00001
소스
4500
P0022
맛있는마요네즈
CD_OL00002
소스
4700
SQL문을 실행하면 다음과 같이 나와야 합니다.
PRODUCT_ID
PRODUCT_NAME
PRODUCT_CD
CATEGORY
PRICE
P0020
맛있는산초유
CD_OL00010
식용유
6500
3) 풀이
아래 코드중 2번 MAX 사용하는 법으로 풀이하겠습니다.
1. 테이블에서 PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE를 조회합니다.
● SELECT * FROM FOOD_PRODUCT
위 정보들은 테이블내 모든 정보이므로 *로 표현합니다.
2. 가격이 제일 비싼 식품의 정보만 조회합니다.
● WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT);
FOOD_PRODUCT 테이블에서 가장 가격이 비싼 값 MAX(PRICE)를 구하고.
WHERE을 이용하여 그 값을 조건으로, 그 값에 해당하는 것만 1번으로 조회합니다.
4) 코드
1. LIMIT 사용하기
SELECT * FROM FOOD_PRODUCT
ORDER BY PRICE DESC
LIMIT 1;
2. MAX 사용하기
SELECT * FROM FOOD_PRODUCT
WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT);