[SQL] 즐겨찾기가 가장 많은 식당 정보 출력하기

정태호·2022년 11월 28일
0
SELECT RI.FOOD_TYPE,RI.REST_ID,RI.REST_NAME,RI.FAVORITES
FROM REST_INFO RI
INNER JOIN (SELECT MAX(FAVORITES) AS FAVORITES
            FROM REST_INFO
            GROUP BY FOOD_TYPE) RI2 ON RI2.FAVORITES = RI.FAVORITES
GROUP BY RI.FOOD_TYPE
ORDER BY RI.FOOD_TYPE DESC

문제 조건에 FOOD_TYPE으로 내림차순 정렬하라 되어 있는데 FAORITES를 기준으로 GROUP BY할 때 동일 점수를 가지는경우 REST_ID가 먼저인 컬럼이 선택되어 있는 모습을 볼 수 있다.

기본적으로 REST_ID가 자동,순차적으로 적용될 경우 정렬을 하지 않더라도 GROUP BY시 가장 먼저 등록된 행이 표시 되기 때문에 다음과 같이 작성하게 되면 동표 행이 있더라도 상관없게 된다.

또한 가장 FAORITES이 가장 큰 행이 선택될 수 있도록 INNER JOIN을 이용해 MAX(FAVORITES) 값을 기준으로 필터링을 해주었다.

0개의 댓글