■ 사용 문법
GROUP BY, JOIN
( GROUP BY 절은 그룹화 기준 컬럼(CATEGORY)과 집계 함수의 결과(MAX(PRICE))만 반환한다.)
■ 사용 방법
1. GROUP BY 절은 그룹화 기준 컬럼과 집계 함수의 결과만 반환하다. 따라서, 아래와 같은 코드 실행 시 PRODUCT_NAME이 매칭되지 않은 값으로 나온다.
SELECT CATEGORY, MAX(PRICE) as MAX_PRICE, PRODUCT_NAME
FROM FOOD_PRODUCT
WHERE CATEGORY = "과자" OR CATEGORY = "국" OR CATEGORY = "김치" OR CATEGORY = "식용유"
GROUP BY CATEGORY
ORDER BY MAX_PRICE DESC
2. 이를 해결해주기 위해서 카테고리와 카테고립 별 제일 비싼 가격을 FOOD_PRODUCT과 JOIN으로 매칭시켜주는 것이다.
3. 첫번째 서브쿼리만 주의해서 봐주면 잘 풀 수 있을 것이다.
■ 코드
SELECT A.CATEGORY, A.MAX_PRICE, B.PRODUCT_NAME
FROM
( SELECT CATEGORY, MAX(PRICE) as MAX_PRICE
FROM FOOD_PRODUCT
WHERE CATEGORY = "과자" OR CATEGORY = "국" OR CATEGORY = "김치" OR CATEGORY = "식용유"
GROUP BY CATEGORY ) AS A
JOIN FOOD_PRODUCT AS B
ON A.MAX_PRICE = B.PRICE AND A.CATEGORY = B.CATEGORY
ORDER BY MAX_PRICE DESC
728x90
'개발 > SQL' 카테고리의 다른 글
프로그래머스SQL_년, 월, 성별 별 상품 구매 회원 수 구하기 (0) | 2024.06.14 |
---|---|
프로그래머스SQL_저자 별 카테고리 별 매출액 집계하기 (0) | 2024.06.13 |
프로그래머스SQL_동명 동물 수 찾기 (0) | 2024.06.05 |
프로그래머스SQL_고양이와 개는 몇 마리 있을까 (0) | 2024.06.04 |
프로그래머스SQL_진료과별 총 예약 횟수 출력하기 (0) | 2024.05.17 |