https://school.programmers.co.kr/learn/courses/30/lessons/131115
[문제]
다음은 식품의 정보를 담은 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문을 작성해주세요.
[코드1]
SELECT *
FROM FOOD_PRODUCT
WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT);
[코드2]
SELECT *
FROM FOOD_PRODUCT
ORDER BY PRICE DESC
LIMIT 1
[고찰]
이번 문제는 집계함수에 조건을 달아야 하는 것이 아닌 단순히 PRICE가 가장 큰 값을 찾아야 하기 때문에 HAVING 절이 아닌 서브쿼리를 사용해야 했다. WHERE 절에 PRICE의 최댓값을 구하는 서브쿼리문을 작성하면 정답 처리를 받을 수 있었다.
'SQL 문제' 카테고리의 다른 글
[solvesql_Level2] 일별 블로그 방문자 수 집계 (0) | 2023.10.11 |
---|---|
[solvesql_Level2] 레스토랑 웨이터의 팁 분석 (0) | 2023.10.11 |
[프로그래머스_SQL] 헤비 유저가 소유한 장소 (0) | 2023.10.10 |
[프로그래머스_SQL] 년, 월, 성별 별 상품 구매 회원 수 구하기 (0) | 2023.10.10 |
[프로그래머스_SQL] 보호소에서 중성화한 동물 (0) | 2023.10.10 |