본문 바로가기

PS/프로그래머스 문제

SQL 고득점 KIT )즐겨찾기가 가장 많은 식당 정보 출력하기

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

반응형