SELECT REST_INFO.FOOD_TYPE, REST_INFO.REST_ID, REST_INFO.REST_NAME, REST_INFO.FAVORITES as FAVORITES
FROM
(SELECT FOOD_TYPE, MAX(FAVORITES) as max_fav
FROM REST_INFO
GROUP BY FOOD_TYPE) tmp
INNER JOIN REST_INFO on tmp.FOOD_TYPE = REST_INFO.FOOD_TYPE AND tmp.max_fav = REST_INFO.FAVORITES
ORDER BY FOOD_TYPE DESC
1. 먼저 FOOD_TYPE과 MAX(FAVORITES)인 테이블을 만든다. (tmp)
이 테이블을 본 테이블과 다음과 같은 조건으로
tmp.FOOD_TYPE = REST_INFO.FOOD_TYPE AND tmp.max_fav = REST_INFO.FAVORITES
교집합(inner join)한다.
이러면 FAVORITES가 가장 큰 값을 가진 ROW를 가져올 수 있다.
이후 각 컬럼들을 가져오면 된다.
GROUP BY 문제라했지만 JOIN이랑 스까서 어려웠당
참고자료 ) http://b1ix.net/87
반응형
'PS > 프로그래머스 문제' 카테고리의 다른 글
SQL 고득점 KIT )식품분류별 가장 비싼 식품의 정보 조회하기 (0) | 2022.10.06 |
---|