0. 틀린 이유
SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, MAX(PRICE)
FROM FOOD_PRODUCT
이렇게 코드를 작성하면 ID, NAME, CODE, CATEGORY와 별개로 PRICE만 가장 높은 값을 출력하게 된다.
즉, price와 id 값이 같은 column이 아닌 것이다.
1. 고가 순으로 정렬 후 1개만 조회하기
SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE
FROM FOOD_PRODUCT
ORDER BY PRICE DESC
LIMIT 1
2. WITH 사용
: 쿼리 작성 시 하나의 서브쿼리 또는 임시 테이블처럼 활용할 수 있는 기능
+ 코드 가독성을 높여줌
+ SQL의 성능을 개선시킴
WITH A AS (
SELECT MAX(PRICE) AS MAX_PRICE FROM FOOD_PRODUCT LIMIT 1
)
SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE
FROM FOOD_PRODUCT, A
WHERE PRICE = A.MAX_PRICE;
#WITH 기본구조
WITH 별명 AS (
SUB_QUERY
)
#MAIN QUERY
SELECT column_name
FROM table_name
3. WHERE 절
SELECT *
FROM FOOD_PRODUCT
WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT)
'SQL' 카테고리의 다른 글
[MySQL] Date_format (0) | 2024.05.09 |
---|---|
[MySQL] COUNT와 NULL (0) | 2024.05.08 |
[MySQL][프로그래머스] NULL값 처리 (경기도에 위치한 식품창고 목록 출력하기) (0) | 2024.05.07 |
[MySQL][프로그래머스] 이름에 el이 들어가는 동물 찾기 (like) (0) | 2024.05.03 |
[MySQL][프로그래머스] 상위n개 레코드 (limit) (0) | 2024.04.29 |