(SQL) 식품 종류별 비싼 식품 정보 조회하기
2024. 5. 19. 11:00ㆍTIL
신나는 주말!
주말에는 간단한 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 |