

내가 작성한 코드
SELECT FOOD_TYPE, REST_ID, REST_NAME, max(FAVORITES)
from REST_INFO
group by FOOD_TYPE, REST_ID, REST_NAME
order by FOOD_TYPE desc
SELECT 절과 group by 절에는 집계함수를 제외하고 동일한 컬럼이 와야한다고 해서 위와 같이 적었다. 그랬더니 아래와 같이 favorites 부분은 이름만 max(favorites) 로 나오고 모든 컬럼이 FOOD_TYPE 별로 내림차순으로만 정렬되서 나왔다.

정답
SELECT FOOD_TYPE, REST_ID, REST_NAME, FAVORITES
from REST_INFO
where (FOOD_TYPE, FAVORITES) IN ( SELECT FOOD_TYPE, MAX(FAVORITES) FROM REST_INFO GROUP BY FOOD_TYPE)
order by FOOD_TYPE desc
where 절에서 in() 으로 우선 그룹 별 최대 즐겨찾기 수인 식당을 뽑고, 그 데이터와 일치하는 식당만 추려서 조회한다.
where 절에서 in 키워드는 OR 조건과 같은 의미