(SQL) 식품 종류별 비싼 식품 정보 조회하기

2024. 5. 19. 11:00TIL

신나는 주말!

주말에는 간단한 SQL 문제를 풀어보자!

 

🔥SQL 문제

 

FOOD_PRODUCT 테이블에서 식품분류별로 가격이 제일 비싼 식품의 분류, 가격, 이름을 조회하는 SQL문을 작성해주세요. 이때 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력시켜 주시고 결과는 식품 가격을 기준으로 내림차순 정렬해주세요.

 

 

입출력 예

CATEGORY MAX_PRICE PRODUCT_NAME
식용유 6500 [5, 10]
과자 1800 [1, 2, 3, 36]

 

 

내가 작성한 코드 

 

PRICE기준의 쿼리 생성

SELECT *
FROM FOOD_PRODUCT
HAVING CATEGORY = '국' OR  CATEGORY = '김치' OR  CATEGORY = '식용유' OR CATEGORY='과자'
ORDER BY PRICE DESC

CATEGORY가 김치,국,과자,국인 테이블을 하나 생성하고 가격순으로 내림차순 정렬

 

 

서브쿼리 적용

SELECT *
FROM(
SELECT *
FROM FOOD_PRODUCT
HAVING CATEGORY = '국' OR  CATEGORY = '김치' OR  CATEGORY = '식용유' OR CATEGORY='과자'
ORDER BY PRICE DESC) A2
GROUP BY A2.CATEGORY
ORDER BY A2.PRICE

CATEGORY가 김치,국,과자,국인 테이블을 서브쿼리로 넣어서 GROUP BY 로 묶어주게 되면 기존에 생성한 A2라고 이름 붙힌 테이블이 가격순으로 내림차순 정렬이 되어있기때문에 자연스럽게 각 GROUP의 PRICE가 가장 높은 값들이 조회가 된다

 

 

 

 

원하는 컬럼 조회 및 내림차순 정렬 마무리

SELECT A2.CATEGORY,A2.PRICE AS MAX_PRICE, A2.PRODUCT_NAME
FROM(
SELECT *
FROM FOOD_PRODUCT
HAVING CATEGORY = '국' OR  CATEGORY = '김치' OR  CATEGORY = '식용유' OR CATEGORY='과자'
ORDER BY PRICE DESC) A2
GROUP BY A2.CATEGORY
ORDER BY A2.PRICE DESC

 

 

 

오늘 배운 Point

서브쿼리를 이용해서 내가 원하는 방식으로 테이블을 조회할 수 있다

 

 SQL GitHub : https://github.com/kotlin2024/algorithm/commit/982b1a4d0135b4e58d8c6e13b96546dab5347aec

 

 

 

 

'TIL' 카테고리의 다른 글

간단한 API를 직접 만들어보자(4) Status code 500 해결  (0) 2024.05.21
JPA  (0) 2024.05.20
(알고리즘) 과일장수  (0) 2024.05.18
간단한 API를 직접 만들어보자 (3)  (0) 2024.05.17
간단한 API를 직접 만들어보자(2)  (0) 2024.05.16