👉 https://school.programmers.co.kr/learn/courses/30/lessons/131123
🤔 문제 분석
1) REST_INFO 테이블에서
2) 음식종류별로 즐겨찾기수가 가장 많은 식당의
3) 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문을 작성해주세요.
4) 이때 결과는 음식 종류를 기준으로 내림차순 정렬해주세요.
💡 풀이
SELECT A.CATEGORY, A.PRICE, PRODUCT_NAME
FROM FOOD_PRODUCT AS A JOIN(
SELECT CATEGORY, MAX(PRICE) AS MAX_PRICE
FROM FOOD_PRODUCT
GROUP BY CATEGORY
) AS B ON A.PRICE = B.MAX_PRICE
WHERE A.CATEGORY IN ("과자", "국", "김치", "식용유")
GROUP BY A.CATEGORY
ORDER BY B.MAX_PRICE DESC
❗BEFORE U GO
SELECT CATEGORY, MAX(PRICE) AS MAXPRICE, PRODUCTNAME
FROM FOODPRODUCT
GROUP BY CATEGORY
HAVING CATEGORY IN ('과자','국','김치','식용유')
ORDER BY MAXPRICE DESC;
이렇게 작성할 경우 왜 안될까?
'CATEGORY'를 기준으로 group by 해주면, Max(price)는 잘 출력한다.
그런데, 그 다음에 오는 PRODUCT NAME이 group by로 묶이 category와 max(price)랑 관련없는 product_name이 나온다.
그래서 category, max(price)먼저 찾고 이걸 이용해서 join을 한 다음에 product_name을 찾아야 올바른 답이 나온다.
'코딩테스트 > 프로그래머스 SQL' 카테고리의 다른 글
[GROUP BY] 29. 식품분류별 가장 비싼 식품의 정보 조회하기 (0) | 2022.11.18 |
---|---|
[GROUP BY] 28. 고양이와 개는 몇 마리 있을까 (0) | 2022.11.18 |
[GROUP BY] 26. 즐겨찾기가 가장 많은 식당 정보 출력하기 (0) | 2022.11.16 |
[GROUP BY] 25. 성분으로 구분한 아이스크림 총 주문량 (0) | 2022.11.16 |
[GROUP BY] 24. 진료과별 총 예약 횟수 출력하기 (0) | 2022.11.15 |
댓글