반응형
문제
문제 설명
다음은 식품의 정보를 담은 FOOD_PRODUCT 테이블입니다. FOOD_PRODUCT 테이블은 다음과 같으며 PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE는 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 의미합니다.
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 |
문제
FOOD_PRODUCT 테이블에서 가격이 제일 비싼 식품의 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 조회하는 SQL문을 작성해 주세요.
예시
예를 들어 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 |
코드
LIMIT 사용
SELECT * FROM FOOD_PRODUCT
ORDER BY PRICE DESC LIMIT 1;
FOOD_PRODUCT 테이블의 모든 컬럼을 조회한다.
ORDER BY 절에서 PRICE를 기준으로 내림차순 정렬한 뒤 LIMIT를 1로 하여 조회하면 가격이 가장 비싼 상품을 조회할 수 있다.
서브쿼리로 구현
SELECT *
FROM FOOD_PRODUCT
WHERE PRICE = (SELECT MAX(PRICE) AS PRICE
FROM FOOD_PRODUCT)
FOOD_PRODUCT 테이블의 모든 컬럼을 조회한다.
WHERE 절에서 PRICE가 가장 비싼 경우 조회하도록 서브쿼리를 작성한다.
서브쿼리에는 MAX(PRICE)를 조회하여 가장 비싼 가격을 조회한다.
- 예시 테이블의 서브쿼리의 결과는 6500이 된다.
참고로 서브쿼리는 많은 사람들이 안티패턴이라 생각하는 좋지 못한 쿼리로 인식된다.
반응형
'코딩 테스트(Coding Test) > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 중성화 여부 파악하기 - MySQL (0) | 2023.05.18 |
---|---|
[프로그래머스] 고양이와 개는 몇 마리 있을까 - MySQL (0) | 2023.05.17 |
[프로그래머스] DATETIME에서 DATE로 형 변환 - MySQL (0) | 2023.05.15 |
[프로그래머스] NULL 처리하기 - MySQL (0) | 2023.05.14 |
[프로그래머스] 이름에 el이 들어가는 동물 찾기 - MySQL (0) | 2023.05.13 |