-- 성공 코드
-- HAVING 절을 사용하지 않고 WHERE문과 SUBQUERY를 사용해서 푼 방식
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
-- 실패 코드
-- 아래의 코드가 실패한 이유는 아직도 정확하게는 모르겠지만
-- 현재 GROUP BY 된 상태에서 HAVING 절을 사용하게 되어도
-- 가장 상위에 있는 하나만 조회가 되어서 원하는 대로 조건을 추가하지 못한다고 한다.
SELECT FOOD_TYPE, REST_ID, REST_NAME, MAX(FAVORITES) AS FAVORITES
FROM REST_INFO
GROUP BY FOOD_TYPE
HAVING MAX(FAVORITES)
ORDER BY FOOD_TYPE DESC