새소식

Programmers Coding Test/MySQL

[프로그래머스 131115] MySQL - Level2 가격이 제일 비싼 식품의 정보 출력하기

  • -

 

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

 

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);

 

 

 

 

 

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.