https://school.programmers.co.kr/learn/courses/30/lessons/131116
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제
FOOD_PRODUCT 테이블에서 식품분류별로 가격이 제일 비싼 식품의 분류, 가격, 이름을 조회하는 SQL문을 작성해주세요. 이때 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력시켜 주시고 결과는 식품 가격을 기준으로 내림차순 정렬해주세요.
실행결과
SELECT F2.CATEGORY, MAX_PRICE, F1.PRODUCT_NAME
FROM FOOD_PRODUCT F1
JOIN(
SELECT CATEGORY, MAX(PRICE) AS MAX_PRICE
FROM FOOD_PRODUCT
GROUP BY CATEGORY) AS F2
ON F1.CATEGORY = F2.CATEGORY
WHERE F1.PRICE = MAX_PRICE
AND F2.CATEGORY IN ('과자','국','식용유','김치')
ORDER BY MAX_PRICE DESC
JOIN코드
SELECT CATEGORY, MAX(PRICE) AS MAX_PRICE
FROM FOOD_PRODUCT
GROUP BY CATEGORY
내 코드 오류
SELECT CATEGORY, MAX(PRICE) AS MAX_PRICE, PRODUCT_NAME
FROM FOOD_PRODUCT
WHERE CATEGORY IN ('과자','국','식용유','김치')
GROUP BY CATEGORY
ORDER BY MAX_PRICE DESC
product_name이 결과랑 일치하지 않다
서브쿼리 만들어서 join 연산해야함
알게된 점
EXISTS 는 서브쿼리랑 쓰임, 단독으로 쓰이지 않음
'프로그래머스 SQL kit' 카테고리의 다른 글
[SELECT] 업그레이드 된 아이템 구하기 (0) | 2024.12.27 |
---|---|
[GROUP BY] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (1) | 2024.12.24 |
[STRING/DATE] 카테고리 별 상품 개수 구하기/SUBSTRING() (1) | 2024.11.01 |
[SELECT] 오프라인/온라인 판매 데이터 통합하기 / UNION과 JOIN차이 (0) | 2024.11.01 |
[JOIN] 없어진 기록 찾기 /JOIN대신 NOT EXSITS 사용하기 (0) | 2024.11.01 |